UUID v1 là gì?
Một UUID v1 ghép thời gian kể từ 15 tháng 10 năm 1582 (theo đơn vị 100 nano giây) với một định danh nút. Định danh đó theo truyền thống là địa chỉ MAC của card mạng, nhưng bản triển khai hiện đại thường dùng giá trị ngẫu nhiên để không lộ phần cứng.
Vì phần đầu là dấu thời gian ở dạng đảo bit, các giá trị v1 tạo cùng lúc sẽ giống nhau ở nhiều ký tự đầu. Khi sắp xếp như chuỗi, chúng không theo thời gian — đó chính là lý do v6 ra đời.
Cách sử dụng
- Chọn số lượng UUID cần tạo.
- Bật chữ hoa nếu hệ thống nhận đầu vào viết hoa.
- Bấm Tạo và sao chép giá trị cần dùng.
Dùng để làm gì
- Hệ thống hoặc thư viện cũ yêu cầu đúng v1.
- Định danh tương quan lại theo dấu thời gian và nút.
- Kiểm thử phần mềm đọc UUID v1 để lấy thời gian.
UUID v1 đứng ở đâu
| Lựa chọn | Khi nào dùng |
|---|---|
v1 | Bản gốc, vẫn còn trong các hệ thống cũ |
v6 | Cùng dữ liệu nhưng sắp xếp được theo thời gian |
v4 | Không lộ thời gian hay máy tạo |
Các phiên bản UUID trong một bảng
| Phiên bản | Sắp xếp được | Dựa trên | Dùng cho |
|---|---|---|---|
| v1 | Không | Dấu thời gian + địa chỉ MAC | Hệ thống cũ vẫn còn phụ thuộc v1 |
| v3 | Không | Băm MD5 của một tên | Định danh tất định khi buộc phải dùng MD5 |
| v4 | Không | 122 bit ngẫu nhiên | Hầu hết mọi định danh thông dụng |
| v5 | Không | Băm SHA-1 của một tên | Khi cùng một tên phải luôn ra cùng một định danh |
| v6 | Có | Dấu thời gian đã đảo thứ tự | Định danh sắp xếp được mà vẫn giữ độ ngẫu nhiên |
| v7 | Có | Thời gian Unix theo mili giây | Khóa chính trong cơ sở dữ liệu và định danh sự kiện |
| v8 | Không | Bố cục bit của riêng bạn | Định dạng tùy biến hoặc thử nghiệm |
Cả bảy phiên bản đều dài 128 bit và được viết theo cùng dạng 8-4-4-4-12. Điều khác nhau chỉ là ý nghĩa của các bit.
Câu hỏi thường gặp
Vì sao người ta khuyên tránh UUID v1?
Vì hai lý do. Thứ nhất, địa chỉ MAC trong trường nút từng khiến người ta theo dõi được máy nào tạo giá trị. Thứ hai, v1 không sắp xếp được theo thời gian khi so sánh dưới dạng chuỗi, nên không phù hợp làm khóa chính có chỉ mục.
Công cụ này có đưa địa chỉ MAC thật của tôi vào không?
Không. Trường nút được sinh ngẫu nhiên để giá trị không tiết lộ phần cứng của bạn.
v1 có còn được dùng không?
Có, ở những nơi cần tương thích ngược. RFC 9562 vẫn giữ v1 trong đặc tả, nhưng với thiết kế mới thì v7 là lựa chọn hợp lý hơn.