Cách dùng Tạo UUID
- Chọn Phiên bản 4 cho ID hoàn toàn ngẫu nhiên hoặc Phiên bản 7 cho ID được sắp xếp theo thời gian tạo.
- Nhập số lượng bạn cần (tối đa 10.000) rồi nhấn Tạo — hoặc nhấn Ctrl/⌘ + Enter.
- Điều chỉnh định dạng: chữ hoa, bỏ dấu gạch ngang, bọc trong dấu ngoặc nhọn, hoặc xuất dưới dạng mảng JSON hoặc danh sách SQL.
- Nhấn Sao chép tất cả hoặc Tải xuống. Dán bất kỳ UUID nào vào Kiểm tra & phân tích để xem phiên bản, biến thể và dấu thời gian được nhúng.
UUID là gì?
UUID (Universally Unique Identifier), được Microsoft gọi là GUID, là một mã định danh 128-bit được viết dưới dạng 32 chữ số thập lục phân, chia thành năm nhóm: 8-4-4-4-12, ví dụ 550e8400-e29b-41d4-a716-446655440000. UUID có thể được tạo độc lập trên bất kỳ máy nào mà không cần máy chủ trung tâm, với xác suất trùng lặp gần như bằng không — rất phù hợp cho khóa chính cơ sở dữ liệu, hệ thống phân tán, tên tệp, khóa idempotency và ID tương quan. Định dạng này được quy định trong RFC 9562 (2024), thay thế RFC 4122 và bổ sung các phiên bản 6, 7 và 8.
UUID v4 so với v7
| Phiên bản 4 | Phiên bản 7 | |
|---|---|---|
| Nội dung | 122 bit ngẫu nhiên | Dấu thời gian Unix 48-bit (ms) + 74 bit ngẫu nhiên |
| Sắp xếp theo thời gian tạo | Không | Có |
| Hiệu năng chỉ mục cơ sở dữ liệu | Chèn ngẫu nhiên làm phân mảnh chỉ mục B-tree | Chèn tuần tự, tương tự auto-increment |
| Tiết lộ thời gian tạo | Không | Có (đến mili giây) |
| Ví dụ | 3b241101-e2bb-4255-8caf-4136c566a962 | 0199f2a4-7c3e-7b21-9d4f-3a6c8e1b2d40 |
Hãy chọn v7 cho khóa chính trong bảng PostgreSQL, MySQL hoặc SQL Server: vì ID mới luôn lớn hơn ID cũ, các lần chèn được nối vào cuối chỉ mục thay vì tách các trang ngẫu nhiên. Chọn v4 khi ID không được phép rò rỉ bất kỳ thông tin nào, chẳng hạn như token công khai. Trong một lần tạo hàng loạt, công cụ này giữ cho các UUID v7 tăng nghiêm ngặt ngay cả khi nhiều ID được tạo trong cùng một mili giây, bằng cách dùng bộ đếm trong trường rand_a như RFC 9562 khuyến nghị.
Cách đọc một UUID
Hai vị trí mang siêu dữ liệu. Chữ số đầu tiên của nhóm thứ ba là phiên bản (4 hoặc 7 ở trên). Chữ số đầu tiên của nhóm thứ tư mã hóa biến thể: 8, 9, a hoặc b nghĩa là UUID chuẩn RFC 9562. Trong UUID v7, 12 chữ số thập lục phân đầu là thời điểm tạo tính bằng mili giây kể từ năm 1970 — công cụ kiểm tra sẽ giải mã giúp bạn, và cũng trích xuất dấu thời gian từ UUID v1 và v6. UUID nil đặc biệt gồm toàn số 0; UUID max gồm toàn f.
UUID có thực sự duy nhất không?
Với v4, bạn cần tạo khoảng 2,7 × 1018 UUID để đạt xác suất 50% xảy ra một lần trùng lặp. Điều này giả định nguồn ngẫu nhiên tốt: công cụ này dùng crypto.getRandomValues() an toàn về mật mã của trình duyệt, không bao giờ dùng Math.random(). Tuy nhiên, UUID là mã định danh chứ không phải bí mật — đừng dùng chúng làm mật khẩu hoặc token phiên; hãy tạo những thứ đó bằng Công cụ tạo mật khẩu.
Tạo UUID bằng code
JavaScript: crypto.randomUUID() (v4). Python: uuid.uuid4(), và uuid.uuid7() từ Python 3.14. PostgreSQL: gen_random_uuid() (v4) và uuidv7() trong PostgreSQL 18. Các giá trị gần như duy nhất khác bạn có thể cần: mã băm để nhận dạng nội dung và dấu thời gian Unix cho thời gian.
Cũng được tìm dưới tên: uuid v4, uuid v7, tạo guid online, uuid ngẫu nhiên, kiểm tra uuid, tạo nhiều uuid cùng lúc, tạo mã định danh duy nhất.
Các công cụ dùng kèm tốt với Tạo UUID
- Tạo ULID & Nano ID — Tạo ULID (ID 26 ký tự, sắp xếp theo thời gian tạo) hoặc Nano ID, ID ngắn thân thiện với URL với bảng ký tự và độ dài bạn chọn.
- Nano ID Generator — Tạo ID ngắn, ngẫu nhiên, an toàn cho URL như V1StGXR8_Z5jdHi6B-myT — cùng định dạng với thư viện nanoid phổ biến.
- Mã hóa / Giải mã Base64 — Chuyển văn bản sang Base64 và ngược lại với hỗ trợ đầy đủ UTF-8 (dấu tiếng Việt, emoji), chuyển sang Base64 an toàn cho URL, hoặc thả tệp vào để lấy chuỗi Base64 hay data URI.
- Dịch Mã Morse — Nhập văn bản để có mã Morse, hoặc dán chấm và gạch để giải mã.
Câu hỏi thường gặp
UUID và GUID khác nhau như thế nào?
Nên dùng UUID v4 hay v7 cho khóa cơ sở dữ liệu?
Hai UUID được tạo ra có thể trùng nhau không?
Các UUID này có được tạo an toàn không?
Làm sao lấy dấu thời gian từ UUID v7?
parseInt(uuid.slice(0, 8) + uuid.slice(9, 13), 16) trong JavaScript.