Trình tạo UUID phiên bản 4 (Ngẫu nhiên)

Tạo UUID ngẫu nhiên để đạt độ duy nhất và bảo mật tối đa

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

UUID v4 là gì?

Phiên bản UUID 4 là định danh 128-bit dựa trên ngẫu nhiên (chuỗi 36 ký tự) theo RFC 4122. Nó bao gồm:

  • Giá trị ngẫu nhiên: 122 bit dữ liệu ngẫu nhiên
  • Bit phiên bản: 4 bit chỉ định phiên bản 4 (0100)
  • Bit biến thể: 2 bit chỉ định biến thể RFC 4122 (10)

Ví dụ định dạng: f47ac10b-58cc-4372-a567-0e02b2c3d479

Cách UUID v4 hoạt động

  1. Tạo 122 bit dữ liệu ngẫu nhiên mạnh về mặt mật mã
  2. Đặt bit phiên bản thành 0100 (phiên bản 4)
  3. Đặt bit biến thể thành 10 (tiêu chuẩn RFC 4122)
  4. 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 & Lưu ý

AdvantagesConsiderations
  • Không có lo ngại về riêng tư
  • An toàn mật mã
  • Không phụ thuộc vào đồng hồ/trạng thái
  • Rất khó đoán trước
  • Không theo thứ tự thời gian/không thể sắp xếp
  • Tạo chậm hơn một chút
  • Cần bộ tạo số ngẫu nhiên chất lượng
  • Không có thời gian tạo nhúng trong đó

Cấu trúc UUID v4

BitsContent
0-47Dữ liệu ngẫu nhiên
48-51Phiên bản (0100 cho v4)
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 v4 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 được✅ Riêng tư
UUID v4RandomID ngẫu nhiên an toàn✅ Riêng tư
UUID v5Namespace + SHA-1ID xác định được✅ 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 cơ sở dữ liệu: Ứng dụng phân tán
  • Token bảo mật: Hệ thống xác thực
  • Định danh một lần: Truy cập tạm thời
  • Hệ thống đa người thuê: Ngăn ngừa trùng lặp
  • Định danh nội dung: Quản lý tài liệu
  • ID yêu cầu API: Theo dõi yêu cầu

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

UUID v4 có an toàn về mặt mật mã không?

Có. UUID v4 dựa vào bộ tạo số ngẫu nhiên mạnh về mặt mật mã, phù hợp cho các ứng dụng nhạy cảm về bảo mật.

Giá trị UUID v4 có thể trùng nhau không?

Về lý thuyết thì có, nhưng thực tế thì không. Với 122 bit ngẫu nhiên, xác suất trùng lặp cực kỳ nhỏ, ngay cả với hàng tỷ UUID được tạo ra.

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

Không. Khác với UUID dựa trên thời gian (v1, v6, v7), UUID v4 chỉ chứa dữ liệu ngẫu nhiên và không có thành phần dấu thời gian.

Giá trị UUID v4 có thể sắp xếp theo thời gian tạo không?

Không. Giá trị UUID v4 là ngẫu nhiên và không liên quan đến thời gian tạo. Để có ID có thể sắp xếp, hãy xem xét UUID v1, v6 hoặc v7.

Giá trị UUID v4 có tiết lộ thông tin hệ thống không?

Không. UUID v4 hoàn toàn bao gồm dữ liệu ngẫu nhiên với các bit phiên bản và biến thể, đảm bảo riêng tư hoàn toàn mà không rò rỉ thông tin hệ thống.

Resources