Công Cụ Tạo UUID
Tạo UUID phiên bản 4 ngẫu nhiên, còn gọi là GUID, từng cái một hoặc tối đa 100 cái cùng lúc. Chúng đến từ bộ tạo số ngẫu nhiên an toàn mật mã của trình duyệt, và bạn có thể chuyển sang chữ hoa hoặc bỏ dấu gạch nối trước khi sao chép một hoặc tất cả. Miễn phí, không cần đăng ký, và không có gì được gửi đến máy chủ.
Cách Sử Dụng Công Cụ Tạo UUID
- 1. Chọn số lượng. Bất kỳ số nguyên nào từ 1 đến 100; mặc định là 5.
- 2. Nhấn Tạo. Một danh sách mới xuất hiện mỗi lần. Không có gì được tạo cho đến khi bạn nhấn nút.
- 3. Chọn định dạng. Chữ Hoa và Không Gạch Nối định dạng lại danh sách bạn đã có; chúng không tạo giá trị mới.
- 4. Sao chép. Mỗi hàng có nút Sao Chép riêng, và Sao Chép Tất Cả chép toàn bộ danh sách, mỗi UUID một dòng.
Cấu Trúc Của Một UUID Phiên Bản 4
UUID là một mã định danh 128 bit, được viết dưới dạng 32 chữ số thập lục phân trong năm nhóm phân tách bằng dấu gạch nối — 8-4-4-4-12 — tức 36 ký tự. Định dạng được định nghĩa trong RFC 9562 (2024), thay thế RFC 4122. Phiên bản 4 lấp đầy gần như mọi bit bằng dữ liệu ngẫu nhiên; chỉ có sáu bit được cố định:
| Phần | Vị trí | Giá trị |
|---|---|---|
| Phiên bản | Chữ số đầu của nhóm thứ ba | Luôn là 4 |
| Biến thể | Chữ số đầu của nhóm thứ tư | Một trong 8, 9, a hoặc b |
| Bit ngẫu nhiên | Mọi phần còn lại | 122 bit |
Một mẫu, như bộ ngẫu nhiên của công cụ tạo ra: e1f22e6e-ea3f-42a7-b43d-164b51542675. Nhóm thứ ba bắt đầu bằng 4 và nhóm thứ tư bằng b, như mọi UUID v4 phải có. UUID của bạn sẽ khác; đó chính là điểm mấu chốt.
Liệu Hai UUID Có Bao Giờ Trùng Nhau?
Với 122 bit ngẫu nhiên có 2122 giá trị có thể, khoảng 5,3 × 1036. Theo giới hạn ngày sinh nhật, bạn cần khoảng 2,7 × 1018 UUID để có cơ hội 50% rằng bất kỳ hai cái nào trùng nhau. Tạo một tỷ cái mỗi giây thì mất khoảng 86 năm. Với các ứng dụng thông thường — khóa cơ sở dữ liệu, ID yêu cầu, tên tệp — va chạm không phải là vấn đề thực tế, miễn là nguồn ngẫu nhiên tốt. Công cụ này dùng bộ tạo mật mã của trình duyệt (crypto.randomUUID, dự phòng crypto.getRandomValues), không dùng Math.random.
Bạn Cần UUID Phiên Bản Nào?
| Phiên bản | Được tạo từ | Cách dùng thông thường |
|---|---|---|
| 1 | Thời gian đồng hồ (Gregorian) và một mã định danh nút | Hệ thống cũ; có thể lộ khi và ở đâu nó được tạo |
| 3 và 5 | Băm (MD5 hoặc SHA-1) của một không gian tên và một tên | ID ổn định suy ra từ một tên |
| 4 | Bit ngẫu nhiên | ID duy nhất đa dụng — đây là thứ công cụ này tạo ra |
| 7 | Dấu thời gian Unix tính bằng mili giây, rồi đến bit ngẫu nhiên | Khóa cơ sở dữ liệu sắp xếp theo thời gian tạo |
RFC 9562 lưu ý rằng tính ngẫu nhiên của v4 làm chỉ mục cơ sở dữ liệu kém cục bộ, và khuyên dùng phiên bản 7 thay cho phiên bản 1 và 6 với ID theo thời gian. Nếu bảng của bạn lớn và thường xuyên chèn dữ liệu, một v7 sắp theo thời gian có thể phù hợp hơn v4. Trang này chỉ tạo v4. RFC cũng nói UUID nên được lưu trong cơ sở dữ liệu dưới dạng nhị phân 16 byte khi có thể, vì văn bản chiếm 36 ký tự.
Định Dạng: Gạch Nối, Chữ Hoa và GUID
RFC 9562 cho phép chữ số thập lục phân viết hoa, viết thường hoặc lẫn lộn, và cùng một UUID ở dạng nào cũng là cùng một mã định danh. Dạng văn bản chuẩn có dấu gạch nối; dạng 32 chữ số không có chúng là một biến thể phổ biến mà nhiều cơ sở dữ liệu và API chấp nhận, nhưng hãy kiểm tra hệ thống của bạn trước khi dùng. GUID là tên Microsoft đặt cho cùng mã định danh 128 bit này, nên UUID v4 từ trang này dùng được ở bất cứ đâu cần GUID.
Câu Hỏi Thường Gặp
- UUID v4 là gì?
- Một mã định danh duy nhất toàn cầu 128 bit, trong đó 122 bit là ngẫu nhiên và sáu bit đánh dấu phiên bản (4) và biến thể. Nó được viết như 550e8400-e29b-41d4-a716-446655440000.
- Hai UUID được tạo ra có thể trùng nhau không?
- Về lý thuyết thì có; trên thực tế thì không. Có khoảng 5,3 × 1036 giá trị có thể, và cơ hội 50% có bất kỳ va chạm nào cần khoảng 2,7 × 1018 UUID, tức khoảng 86 năm với một tỷ cái mỗi giây.
- Tính ngẫu nhiên có an toàn về mặt mật mã không?
- Có. Công cụ gọi crypto.randomUUID của trình duyệt, hoặc crypto.getRandomValues khi thiếu, cả hai đều dùng bộ tạo số ngẫu nhiên an toàn mật mã thay vì Math.random.
- UUID có được tạo trên máy chủ không?
- Không. Chúng được tạo trong trình duyệt của bạn, không được gửi đi đâu và không được lưu lại. Tạo lại sẽ cho một danh sách hoàn toàn mới.
- UUID có giống GUID không?
- Có. GUID là thuật ngữ của Microsoft cho cùng mã định danh 128 bit. UUID v4 có thể dùng làm GUID mà không cần đổi; các công cụ Windows đôi khi hiển thị GUID ở dạng chữ hoa hoặc đặt trong dấu ngoặc nhọn.
- Chữ Hoa và Không Gạch Nối làm gì?
- Chúng chỉ đổi cách viết từng giá trị. Chữ Hoa đổi các chữ cái thập lục phân thành chữ hoa, mà RFC 9562 coi là cùng một UUID. Không Gạch Nối bỏ dấu gạch nối để còn 32 ký tự; chỉ dùng khi hệ thống nhận cần đúng dạng đó.
- Tôi có thể dùng UUID làm bí mật hoặc mật khẩu không?
- Không. UUID được thiết kế để duy nhất, không phải để bí mật. RFC 9562 nói rằng các triển khai không nên cho rằng UUID khó đoán và không được dùng chúng như năng lực bảo mật. Hãy dùng Công Cụ Tạo Mật Khẩu cho các bí mật.