Cách hoạt động
Ba loại mã định danh
UUID v4 dài 128 bit: 122 bit ngẫu nhiên, 4 bit cố định cho số phiên bản 4 và 2 bit cố định cho biến thể, theo RFC 9562. Khả năng hai mã v4 trùng nhau nhỏ đến mức có thể coi là duy nhất.
UUID v7 bắt đầu bằng thời gian Unix hiện tại tính theo mili giây (48 bit), rồi đến phiên bản và biến thể, sau cùng là 74 bit ngẫu nhiên. Vì thời gian đứng đầu nên các mã v7 xếp đúng theo thứ tự được tạo, giúp chỉ mục cơ sở dữ liệu gọn gàng.
Nano ID gồm 21 ký tự lấy từ bảng 64 chữ an toàn cho URL (A–Z, a–z, 0–9, _ và -), khoảng 126 bit ngẫu nhiên trong một chuỗi ngắn hơn.
UUID = 32 chữ số hex = 128 bit; Nano ID = 21 × 6 bit = 126 bit
Phần ngẫu nhiên lấy từ đâu
Mọi bit ngẫu nhiên đến từ crypto.getRandomValues của trình duyệt, cùng bộ sinh dùng để tạo khoá. Với Nano ID, mỗi byte được lấy dư cho 64; vì 64 chia hết 256 nên chữ nào cũng có khả năng xuất hiện như nhau.
Đọc hình minh hoạ
Chọn một dòng bất kỳ để xem nó được vẽ theo từng bit: bốn ô dưới mỗi chữ số hex (sáu ô dưới mỗi chữ của Nano ID), tô đặc là 1, để trống là 0. Bit phiên bản và biến thể có viền bao, bit thời gian của v7 đậm, bit ngẫu nhiên nhạt hơn. Với v7, thời điểm ghi trong mã được đọc lại thành ngày giờ ISO.




