UUID v3 là gì?
Phiên bản UUID 3 là một định danh 128-bit dựa trên namespace (chuỗi 36 ký tự) theo RFC 4122 sử dụng băm MD5. Nó bao gồm:
- Namespace UUID: Một namespace UUID được định nghĩa sẵn hoặc tùy chỉnh
- Name: Một chuỗi do người dùng cung cấp để băm
- Băm MD5: Áp dụng cho sự kết hợp namespace + tên
Ví dụ định dạng: 9125a8dc-52ee-365b-a5aa-81b0b3681cf6
Cách UUID v3 hoạt động
- Chọn một namespace UUID (được định nghĩa sẵn hoặc tùy chỉnh)
- Nối các byte của namespace UUID với các byte của chuỗi tên
- Tính toán băm MD5 của giá trị nối
- Đặt các bit phiên bản thành 0011 (phiên bản 3)
- Đặt các bit biến thể thành 10 (tiêu chuẩn RFC 4122)
- Lắp rá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 & Lưu ý
Advantages | Considerations |
---|---|
|
|
Cấu trúc UUID v3
Bits | Content |
---|---|
0-47 | 48 bit đầu tiên của băm MD5 |
48-51 | Phiên bản (0011 cho v3) |
52-63 | 12 bit tiếp theo của băm MD5 |
64-65 | Biến thể (10 cho RFC4122) |
66-127 | 62 bit còn lại của băm MD5 |
Namespace được định nghĩa sẵn
Name | UUID | Purpose |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | Tên miền |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | URLs |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | ISO OIDs |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | Tên phân biệt X.500 |
UUID v3 so 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 trướ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 trướ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
- Định danh dựa trên URL: Tạo UUID từ URL
- ID theo miền: Chuyển đổi tên DNS thành UUID
- ID tệp xác định trước: Định địa chỉ nội dung
- ID người dùng: Từ email hoặc tên người dùng
- Mục cấu hình: Cho khóa nhất quán
- Tham chiếu tài liệu: Hệ thống quản lý nội dung
Câu hỏi thường gặp
UUID v3 có an toàn mật mã không?
Không thực sự. UUID v3 sử dụng MD5, vốn có những điểm yếu mật mã đã biết. Để bảo mật cao hơn, hãy xem xét UUID v5 (SHA-1) hoặc UUID v4 (ngẫu nhiên).
Các đầu vào giống nhau có luôn tạo ra cùng một UUID v3 không?
Có. UUID v3 là xác định trước - cùng namespace và tên sẽ luôn tạo ra UUID giống hệt, rất hữu ích cho ID có thể tái tạo.
Sự khác biệt giữa UUID v3 và v5 là gì?
Chúng hoạt động giống nhau ngoại trừ v3 dùng MD5 còn v5 dùng SHA-1. UUID v5 thường được ưu tiên vì SHA-1 mạnh mật mã hơn MD5.
Tôi có thể tạo namespace riêng không?
Có. RFC 4122 định nghĩa các namespace chuẩn (DNS, URL, OID, X.500), bạn có thể tạo namespace tùy chỉnh bằng bất kỳ UUID hợp lệ nào.
UUID v3 có phù hợp cho token bảo mật không?
Không. Do điểm yếu của MD5 và tính xác định, UUID v3 không được khuyến nghị cho token bảo mật hoặc bất cứ thứ gì cần tính không thể đoán trước.