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
- Tạo 122 bit dữ liệu ngẫu nhiên mạnh về mặt mật mã
- Đặt bit phiên bản thành 0100 (phiên bản 4)
- Đặt bit biến thể thành 10 (tiêu chuẩn RFC 4122)
- 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 ý
Advantages | Considerations |
---|---|
|
|
Cấu trúc UUID v4
Bits | Content |
---|---|
0-47 | Dữ liệu ngẫu nhiên |
48-51 | Phiên bản (0100 cho v4) |
52-63 | Dữ liệu ngẫu nhiên |
64-65 | Biến thể (10 cho RFC4122) |
66-127 | Dữ liệu ngẫu nhiên |
So sánh UUID v4 với các phiên bản khác
Version | Dựa trên | Trường hợp sử dụng | Privacy |
---|---|---|---|
UUID v1 | Thời gian + MAC | ID theo thứ tự thời gian | ⚠️ Tiết lộ MAC |
UUID v3 | Namespace + MD5 | ID xác định được | ✅ Riêng tư |
UUID v4 | Random | ID ngẫu nhiên an toàn | ✅ Riêng tư |
UUID v5 | Namespace + SHA-1 | ID xác định được | ✅ Riêng tư |
UUID v6 | Thời gian (được sắp xếp lại) | ID có thể sắp xếp | ⚠️ Tiết lộ MAC |
UUID v7 | Thời gian + ngẫu nhiên | ID 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.