
Cách sử dụng
- Chọn số lượng cần tạo, từ 1 đến 50.
- Bấm Tạo GUID để tạo UUID v4 ngẫu nhiên, hoặc Tạo Short GUID để tạo dạng rút gọn 22 ký tự.
- Bấm vào một giá trị để sao chép, hoặc dùng nút chuyển đổi bên cạnh để đổi giá trị đó giữa dạng GUID và short GUID.
- Muốn chuyển ID có sẵn, dán mỗi GUID hoặc short GUID trên một dòng vào bộ chuyển đổi rồi chọn chiều chuyển.
UUID và GUID khác nhau thế nào
UUID (universally unique identifier, mã định danh duy nhất toàn cục) là một giá trị 128 bit, viết thành 32 chữ số thập lục phân chia làm năm nhóm, ví dụ 6f9619ff-8b86-d011-b42d-00c04fc964ff. GUID là tên Microsoft dùng cho cùng thứ này. Định dạng giống hệt nhau; công cụ của Windows hay in GUID bằng chữ hoa hoặc đặt trong dấu ngoặc nhọn, và bộ chuyển đổi ở đây nhận cả hai kiểu.
Các phiên bản UUID
Phiên bản là chữ số đầu tiên của nhóm thứ ba. Công cụ này tạo phiên bản 4, loại ngẫu nhiên, bằng hàm crypto.randomUUID() của trình duyệt, lấy số ngẫu nhiên từ nguồn an toàn mật mã.
| Phiên bản | Tạo từ | Dùng cho |
|---|---|---|
| v1 | Thời gian và địa chỉ MAC của máy | Hệ thống cũ; để lộ thời điểm và nơi tạo |
| v4 | 122 bit ngẫu nhiên | ID dùng chung, khóa bản ghi, dữ liệu thử |
| v5 | Băm SHA-1 của namespace và tên | Cùng đầu vào luôn ra cùng UUID |
| v7 | Thời gian Unix (mili giây) cộng bit ngẫu nhiên | Khóa chính cơ sở dữ liệu sắp xếp theo thời gian tạo (RFC 9562) |
Hai UUID v4 có thể trùng nhau không?
Trên thực tế là không. UUID v4 có 122 bit ngẫu nhiên, tức khoảng 5,3 × 10^36 giá trị. Phải tạo khoảng 2,7 × 10^18 UUID thì xác suất có một cặp trùng mới lên tới 50%, tương đương mỗi giây tạo một tỷ UUID trong 85 năm. Lỗi trùng thường do bộ sinh số ngẫu nhiên hỏng, không phải do định dạng.
Short GUID là gì?
Short GUID lưu cùng 16 byte đó bằng Base64 an toàn cho URL, không có ký tự đệm, nên chỉ còn 22 ký tự thay vì 36. Dạng này tiện dùng trong URL và tên file. Ví dụ 6f9619ff-8b86-d011-b42d-00c04fc964ff thành b5YZ_4uG0BG0LQDAT8lk_w và chuyển ngược lại chính xác.
Các byte được lấy theo đúng thứ tự viết. Hàm Guid.ToByteArray() của .NET đảo thứ tự byte của ba nhóm đầu, nên Base64 tạo từ nó trong C# sẽ khác với công cụ này cho cùng một GUID.
Tạo UUID trong code
JavaScript: crypto.randomUUID(). Python: import uuid; uuid.uuid4(). C#: Guid.NewGuid(). Java: UUID.randomUUID(). PostgreSQL 13 trở lên: SELECT gen_random_uuid(). Dùng trang này khi bạn cần nhanh vài giá trị cho file cấu hình, dữ liệu mẫu hoặc kiểm thử thủ công.
Câu hỏi thường gặp
UUID tạo ở đây có dùng cho môi trường production được không?
Được. Đây là UUID phiên bản 4 chuẩn, lấy từ bộ sinh số ngẫu nhiên an toàn của trình duyệt, và được tạo ngay trên thiết bị của bạn nên không ai khác thấy.
UUID có phải là GUID không?
Đúng. Cả hai là mã định danh 128 bit cùng định dạng 8-4-4-4-12. GUID là tên dùng trong sản phẩm Microsoft; UUID là tên dùng trong RFC và hầu hết nền tảng khác.
Có nên dùng UUID làm khóa chính cơ sở dữ liệu?
Phù hợp khi ID được tạo ở nhiều nơi hoặc không được để đoán ra. UUID v4 ngẫu nhiên được chèn theo thứ tự lộn xộn, có thể làm chậm chỉ mục B-tree lớn; UUID v7 vẫn duy nhất mà còn sắp xếp theo thời gian.
UUID có phân biệt chữ hoa, chữ thường không?
Không. Chữ số thập lục phân viết hoa hay thường đều cùng giá trị. Chuẩn khuyến nghị xuất ra chữ thường, và công cụ này tạo chữ thường.