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 theo thứ tự thời gian (chuỗi 36 ký tự) được đề xuất trong bản dự thảo đặc tả UUID mới. 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
  • Bit phiên bản và biến thể: 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 tính 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 bit phiên bản thành 0111 (phiên bản 7)
  4. Đặt bit biến thể thành 10 (tiêu chuẩn RFC 4122)
  5. Tập hợp thành 32 chữ số hex với dấu gạch ngang: định dạng 8-4-4-4-12

Ưu điểm & Cân nhắc

AdvantagesConsiderations
  • Có thể sắp xếp theo thứ tự từ điển
  • Không có vấn đề về quyền riêng tư
  • Chứa dấu thời gian Unix
  • Đơn giản hóa cho cơ sở dữ liệu
  • Trạng thái bản dự thảo đặc tả
  • Độ phân giải dấu thời gian hạn chế (ms)
  • Hỗ trợ hạn chế trong hệ thống cũ
  • Không thể quay lại 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-65Biến thể (10 cho RFC4122)
66-127Dữ liệu ngẫu nhiên

So sánh UUID v7 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 theo thứ tự thời gian⚠️ Tiết lộ MAC
UUID v3Namespace + MD5ID xác định✅ Riêng tư
UUID v4RandomID ngẫu nhiên an toàn✅ Riêng tư
UUID v5Namespace + SHA-1ID xác định✅ Riêng tư
UUID v6Thời gian (được 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ếp✅ Riêng tư

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: Theo thứ tự 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ụ
  • Nguồn sự kiện: ID sự kiện theo thứ tự thời gian
  • Kho dữ liệu: ID phân tích theo thứ tự thời gian

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 bằng mili giây và dữ liệu ngẫu nhiên thay vì địa chỉ MAC, cung cấp bảo vệ quyền riêng tư đồng thời duy trì khả năng sắp xếp theo thời gian tạo.

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

UUID v7 hiện là bản dự thảo đặc tả trong tài liệu RFC 4122bis đề xuất. Nó chưa phải là tiêu chuẩn RFC chính thức nhưng đã được triển khai trong nhiều thư viện UUID.

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 tính bằng mili giây có thể được trích xuất từ 48 bit đầu tiên và chuyển đổi thành định dạng datetime chuẩn.

UUID v7 có thể sắp xếp theo thời gian 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 để phù hợp với thứ tự thời gian.

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

Không. Khác với v1/v6, UUID v7 không sử dụng địa chỉ MAC. Nó kết hợp dấu thời gian với dữ liệu ngẫu nhiên, bảo vệ quyền riêng tư đồng thời duy trì khả năng sắp xếp.

Resources