UUID ngắn là gì?
UUID ngắn lấy một số byte ngẫu nhiên từ nguồn ngẫu nhiên mật mã rồi mã hóa bằng base64url — bộ ký tự A-Z, a-z, 0-9, - và _ — nên dùng thẳng được trong URL và tên tệp.
Chọn 16 byte nếu bạn muốn lượng ngẫu nhiên tương đương UUID: kết quả dài 22 ký tự, vẫn là 128 bit và vẫn lưu được vào cột kiểu uuid sau khi giải mã. Chọn 8 byte khi cần định danh ngắn cho phạm vi nhỏ.
Cách sử dụng
- Chọn số byte ngẫu nhiên: 8, 12 hoặc 16.
- Chọn số lượng cần tạo.
- Bấm Tạo và sao chép kết quả.
Dùng để làm gì
- Tham số trên URL và liên kết chia sẻ.
- Tên tệp và khóa lưu trữ ngắn gọn.
- Mã mời hoặc mã phiên ngắn.
- Định danh trong hệ thống hạn chế độ dài.
UUID ngắn đứng ở đâu
| Lựa chọn | Khi nào dùng |
|---|---|
short | 22 ký tự, cùng 128 bit ngẫu nhiên của UUID |
v4 | Dạng chuẩn 36 ký tự, ai cũng nhận ra ngay |
slug | Chuỗi đọc được dành cho đường dẫn thân thiện |
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
UUID ngắn có thật sự là UUID không?
Bản 16 byte chứa đúng 128 bit ngẫu nhiên, nên về độ mạnh thì tương đương UUID v4. Điều khác là nó không mang bit phiên bản và biến thể, và được viết bằng base64url thay vì hệ thập lục phân.
Vì sao dùng base64url mà không phải base64 thường?
Vì base64 thường chứa ký tự + và /. Trong URL, + bị hiểu thành dấu cách và / bị coi là dấu phân tách đường dẫn, nên base64url thay chúng bằng - và _.
Nên chọn bao nhiêu byte?
Dùng 16 byte cho hầu hết trường hợp: ngang UUID về độ an toàn. 12 byte phù hợp khi cần ngắn hơn mà vẫn dư an toàn. 8 byte chỉ nên dùng cho tập dữ liệu nhỏ và vòng đời ngắn.