Trình tạo UUID Phiên bản 7 (Thời gian Unix Epoch)

Tạo UUID dấu thời gian Unix với độ chính xác mili giây để sắp xếp theo thứ tự thời gian

Thử các ví dụ này:

UUID v7 là gì?

Phiên bản UUID 7 là một định danh 128-bit có thứ tự thời gian được định nghĩa bởi RFC 9562, xuất bản vào tháng 5 năm 2024. Nó bao gồm:

  • Dấu thời gian Unix: 48 bit thời gian Unix với độ chính xác mili giây
  • Dữ liệu ngẫu nhiên: 74 bit dữ liệu ngẫu nhiên
  • Các bit phiên bản và variant: 6 bit để nhận dạng định dạng

Ví dụ định dạng: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Cách UUID v7 hoạt động

  1. Lấy dấu thời gian Unix hiện tại bằng mili giây (48 bit)
  2. Tạo 74 bit dữ liệu ngẫu nhiên mạnh về mặt mật mã
  3. Đặt các bit phiên bản thành 0111 (phiên bản 7)
  4. Đặt các bit variant thành 10 (theo chuẩn RFC 4122)
  5. Ghép lại thành 32 chữ số hex với dấu gạch ngang: định dạng 8-4-4-4-12

Ưu điểm & Những điều cần cân nhắc

AdvantagesConsiderations
  • Có thể sắp xếp theo thứ tự từ điển
  • Không chứa địa chỉ MAC nhúng
  • Chứa dấu thời gian Unix
  • Đơn giản hóa cho cơ sở dữ liệu
  • Hệ thống cần hỗ trợ UUID v7
  • Độ phân giải thời gian hạn chế (ms)
  • Hỗ trợ hạn chế trong các hệ thống cũ
  • Không thể quay về trước năm 1970

Cấu trúc UUID v7

BitsContent
0-47Dấu thời gian Unix (mili giây)
48-51Phiên bản (0111 cho v7)
52-63Dữ liệu ngẫu nhiên
64-65Variant (10 theo RFC4122)
66-127Dữ liệu ngẫu nhiên

UUID v7 so với các phiên bản khác

VersionDựa trênTrường hợp sử dụngPrivacy
UUID v1Thời gian + MACID có thứ tự theo thời gian⚠️ Tiết lộ MAC
UUID v3Không gian tên + MD5ID xác định trước✅ Riêng tư
UUID v4RandomID ngẫu nhiên an toàn✅ Riêng tư
UUID v5Không gian tên + SHA-1ID xác định trước✅ Riêng tư
UUID v6Thời gian (sắp xếp lại)ID có thể sắp xếp⚠️ Tiết lộ MAC
UUID v7Thời gian + ngẫu nhiênID có thể sắp xếpNhúng thời gian sinh; không có địa chỉ MAC

Các trường hợp sử dụng phổ biến

  • Khóa chính cơ sở dữ liệu: Chỉ mục hiệu quả
  • Hệ thống phân tán: Có thứ tự theo thời gian mà không cần phối hợp
  • Ứng dụng hiện đại: Định danh tập trung vào quyền riêng tư
  • Microservices: ID có thể sắp xếp giữa các dịch vụ
  • Ghi nguồn sự kiện (Event sourcing): ID sự kiện theo thứ tự thời gian
  • Kho dữ liệu: ID phân tích có thứ tự theo thời gian

Các câu hỏi thường gặp

Ưu điểm của UUID v7 so với v1 hoặc v6 là gì?

UUID v7 sử dụng dấu thời gian Unix tính theo mili giây và dữ liệu ngẫu nhiên thay vì địa chỉ MAC, mang lại bảo vệ quyền riêng tư đồng thời duy trì khả năng sắp xếp theo thời điểm tạo.

UUID v7 có phải là một tiêu chuẩn chính thức không?

Có. UUID v7 được định nghĩa bởi RFC 9562, xuất bản vào tháng 5 năm 2024.

Tôi có thể trích xuất thời gian tạo từ UUID v7 không?

Có. Dấu thời gian Unix theo mili giây có thể được trích xuất từ 48 bit đầu tiên và chuyển đổi sang datetime tiêu chuẩn.

UUID v7 có thể sắp xếp theo thời điểm tạo không?

Có. UUID v7 được thiết kế để có thể sắp xếp theo thứ tự từ điển, với dấu thời gian Unix ở các bit có ý nghĩa nhất, cho phép so sánh chuỗi trực tiếp khớp với thứ tự thời gian.

UUID v7 có lộ thông tin hệ thống nào không?

UUID v7 không nhúng địa chỉ MAC, nhưng 48 bit đầu tiên của nó tiết lộ dấu thời gian sinh theo mili giây. Hãy coi siêu dữ liệu thời gian này là có thể nhìn thấy đối với bất kỳ ai nhận được định danh.

Resources