Bộ tạo UUID
ID duy nhất cho cơ sở dữ liệu, API và test, chỉ một cú click.
Chạy ngay trên trình duyệt. Không có gì bạn nhập vào bị gửi đi đâu cả.
- Phiên bản 4 và 7
- Tới 1.000 mã một lần
- Số ngẫu nhiên an toàn
Cách tạo một UUID
- Chọn phiên bản 4 cho ID ngẫu nhiên, hoặc phiên bản 7 cho ID sắp xếp được theo thời gian.
- Đặt số lượng cần và định dạng.
- Bấm Tạo, rồi sao chép hoặc tải danh sách.
So sánh các phiên bản UUID
| Phiên bản | Được tạo từ | Sắp theo thời gian? |
|---|---|---|
| v4 (công cụ này) | 122 bit ngẫu nhiên | Không |
| v7 (công cụ này) | Timestamp 48-bit cộng bit ngẫu nhiên | Có |
| v1 (không có ở đây) | Timestamp cộng địa chỉ MAC của máy | Có, nhưng có thể lộ máy nào đã tạo ra nó |
Cấu trúc UUID, theo RFC 9562
| Phần | Độ dài | Ý nghĩa |
|---|---|---|
| Nibble phiên bản | 1 chữ số hex | 4 cho phiên bản 4, hoặc 7 cho phiên bản 7, ở nhóm thứ 3 |
| Bit variant | 2 bit đầu của nhóm thứ 4 | Đặt là 10 cho biến thể UUID của RFC này |
| Tổng độ dài | 36 ký tự | 32 chữ số hex cộng 4 dấu gạch nối |
Mẹo khi dùng UUID
- Lưu UUID trong một cột UUID gốc hoặc nhị phân 16-byte khi cơ sở dữ liệu của bạn hỗ trợ. Lưu chúng dưới dạng văn bản 36 ký tự sẽ tốn gần gấp đôi dung lượng mỗi ID.
- Timestamp ở đầu của phiên bản 7 giúp ID sắp xếp theo thời gian tạo, nhưng cũng có nghĩa là bất kỳ ai giữ một ID đều biết gần đúng nó được tạo lúc nào, chính xác tới mili giây.
- Định dạng ngoặc nhọn và không dấu gạch nối khớp với cách một số API Windows cũ và script PowerShell mong đợi một GUID trông như thế nào.
Câu hỏi thường gặp về Tạo UUID
Khác biệt giữa UUID v4 và v7 là gì?
Phiên bản 4 là 122 bit ngẫu nhiên. Phiên bản 7 bắt đầu bằng một timestamp 48-bit tính bằng mili giây rồi theo sau là các bit ngẫu nhiên, nên ID mới hơn sẽ được sắp xếp sau ID cũ hơn.
Hai UUID có thể nào trùng nhau không?
Trong thực tế thì không. Bạn sẽ cần tạo khoảng 103 nghìn tỷ UUID phiên bản 4 để có một phần tỷ cơ hội xảy ra một cặp trùng duy nhất.
GUID có giống UUID không?
Có. GUID là tên Microsoft dùng cho cùng định dạng 128-bit đó. Hãy tích Chữ hoa và Dấu ngoặc nhọn để có kiểu {XXXXXXXX-XXXX-...} dùng trong Windows và .NET.
Nên dùng phiên bản nào cho khóa chính cơ sở dữ liệu?
Phiên bản 7. Giá trị của nó đến theo đúng thứ tự thời gian, nên hàng mới sẽ nằm ở cuối chỉ mục thay vì rải rác ngẫu nhiên, giúp việc chèn dữ liệu nhanh hơn. Hãy dùng phiên bản 4 khi một ID không được tiết lộ thời điểm nó được tạo.
Tôi có thể dùng một UUID làm mật khẩu hay token bí mật không?
Các bit ngẫu nhiên đến từ bộ tạo an toàn mã hóa của trình duyệt bạn, nhưng UUID được thiết kế như một định danh. ID phiên bản 7 cũng lộ thời điểm tạo ra chúng, nên hãy dùng một bộ tạo mật khẩu cho việc cần giữ bí mật.
Một UUID dài bao nhiêu?
36 ký tự khi có dấu gạch nối: 32 chữ số hex và 4 dấu gạch nối, mã hóa tổng cộng 128 bit dữ liệu.
Công cụ này có dùng nguồn ngẫu nhiên an toàn mã hóa không?
Có. Cả hai phiên bản đều được tạo từ crypto.getRandomValues (hoặc crypto.randomUUID cho phiên bản 4), bộ tạo số ngẫu nhiên an toàn mã hóa của trình duyệt, không bao giờ dùng Math.random.