Tạo UUID
Công cụ tạo UUID/GUID trực tuyến miễn phí. Tạo UUID v1, v4 và v5 (Nil UUID) ngay lập tức. Tạo hàng loạt, sao chép vào clipboard và tải xuống file. Hoàn hảo cho developers cần unique identifiers.
Tạo UUID - Generate Unique Identifiers Trực Tuyến
Công cụ tạo UUID/GUID mạnh mẽ tạo ra unique identifiers phổ quát với nhiều phiên bản. Tạo UUID đơn lẻ hoặc hàng loạt ngay lập tức với tùy chọn định dạng tùy chỉnh. Hoàn hảo cho database primary keys, session IDs, tên file và bất kỳ tình huống nào cần unique identifiers.
UUID là gì?
UUID (Universally Unique Identifier), còn gọi là GUID (Globally Unique Identifier), là một số 128-bit được sử dụng để nhận dạng duy nhất thông tin trong hệ thống máy tính. UUID được thiết kế để duy nhất trên không gian và thời gian mà không cần cơ quan trung ương.
Định dạng: 8-4-4-4-12 chữ số thập lục phân
Ví dụ: 550e8400-e29b-41d4-a716-446655440000
UUID thường được dùng cho:
- Database primary keys
- Session identifiers
- File và resource identifiers
- Distributed system coordination
- API request IDs
- Message IDs trong queues
Các phiên bản UUID khác nhau là gì?
UUID Version 1 (Dựa trên timestamp):
- Tạo bằng timestamp hiện tại và địa chỉ MAC
- Có thể tiết lộ thời gian và vị trí tạo
- Không thực sự ngẫu nhiên - tuần tự
- Ví dụ: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
UUID Version 4 (Ngẫu nhiên):
- Tạo bằng số ngẫu nhiên hoặc pseudo-random
- Phiên bản được dùng phổ biến nhất
- 122 bits ngẫu nhiên (6 bits cho version/variant)
- Xác suất trùng lặp cực thấp
- Ví dụ: 550e8400-e29b-41d4-a716-446655440000
UUID Version 5 (Dựa trên tên SHA-1):
- Tạo bằng cách hash namespace và tên
- Deterministic - cùng input tạo ra cùng UUID
- Hữu ích để tạo IDs nhất quán
- Ví dụ: 886313e1-3b8a-5372-9b90-0c9aee199e5d
Nil UUID:
- Toàn số 0: 00000000-0000-0000-0000-000000000000
- Đại diện cho sự vắng mặt của UUID
- Dùng như giá trị default/null
Nên dùng phiên bản UUID nào?
Version 4 (Ngẫu nhiên) - Phổ biến nhất:
- Dùng cho: Database IDs, session tokens, mục đích chung
- Ưu điểm: Thực sự ngẫu nhiên, không lo ngại privacy, được hỗ trợ rộng rãi
- Nhược điểm: Không sắp xếp theo thời gian tạo
Version 1 (Timestamp):
- Dùng cho: Khi cần IDs theo thứ tự thời gian
- Ưu điểm: Có thể sắp xếp, chứa timestamp
- Nhược điểm: Tiết lộ địa chỉ MAC (lo ngại privacy), không thực sự ngẫu nhiên
Version 5 (Dựa trên tên):
- Dùng cho: Khi cần UUID deterministic
- Ưu điểm: Cùng input = cùng UUID, có thể tái tạo
- Nhược điểm: Cần namespace UUID
Nil UUID:
- Dùng cho: Giá trị default, kiểm tra null, placeholder
Khuyến nghị: Dùng Version 4 cho hầu hết trường hợp trừ khi có yêu cầu cụ thể.
UUID có duy nhất đến mức nào?
UUID cực kỳ duy nhất:
Thống kê UUID v4:
- Tổng số UUID có thể: 2^122 ≈ 5.3 × 10^36
- Đó là 5.3 undecillion giá trị có thể
- Xác suất trùng lặp gần như bằng 0
Để dễ hình dung:
- Tạo 1 tỷ UUID mỗi giây
- Trong 85 năm
- Xác suất trùng lặp: 50% chỉ sau 2.71 quintillion UUIDs
Ý nghĩa thực tế:
- Bạn có thể an toàn tạo UUID mà không cần kiểm tra trùng
- Trùng lặp trong sử dụng thực tế là không thể xảy ra
- Không cần điều phối trung tâm
Tuy nhiên:
- Random number generator kém có thể tăng nguy cơ trùng
- Dùng nguồn random mã hóa an toàn
- Công cụ này dùng crypto.getRandomValues() của trình duyệt cho tính ngẫu nhiên thực sự
Sự khác biệt giữa UUID và GUID?
UUID và GUID về cơ bản là giống nhau:
UUID (Universally Unique Identifier):
- Thuật ngữ OSF (Open Software Foundation)
- Chuẩn RFC 4122
- Dùng trong Unix/Linux, web standards, cross-platform
GUID (Globally Unique Identifier):
- Thuật ngữ Microsoft
- Dùng trong Windows, .NET, COM
- Cùng định dạng và cấu trúc
Sự khác biệt chỉ là thuật ngữ:
- UUID là thuật ngữ chuẩn RFC chính thức
- GUID là tên marketing của Microsoft
- Cả hai đều chỉ cùng identifier 128-bit
- Định dạng và thuật toán tạo giống hệt nhau
Sử dụng hiện đại: "UUID" phổ biến hơn trong web development và cross-platform.
Tôi có thể dùng UUID làm database primary key không?
Có, nhưng cân nhắc các đánh đổi:
Ưu điểm:
- ✓ Duy nhất toàn cầu (không cần điều phối)
- ✓ Có thể tạo phía client
- ✓ Không xung đột sequence trong distributed systems
- ✓ Merge databases mà không xung đột ID
- ✓ Ẩn thông tin tuần tự (bảo mật)
- ✓ Tạo trước khi insert vào DB
Nhược điểm:
- ✗ Lưu trữ lớn hơn (16 bytes vs 4-8 bytes cho integers)
- ✗ Indexing và joins chậm hơn
- ✗ UUID ngẫu nhiên (v4) ảnh hưởng hiệu suất index
- ✗ Không thân thiện với con người
- ✗ Không thể suy ra thứ tự tạo (trừ v1)
Best practices:
- Dùng UUID v1 nếu cần sắp xếp theo thời gian
- Dùng UUID v4 cho distributed systems
- Cân nhắc ULID hoặc KSUID cho UUID có thể sắp xếp
- Dùng binary(16) storage trong MySQL để hiệu quả
- Thêm integer index thông thường nếu cần sắp xếp
Nhiều hệ thống hiện đại (PostgreSQL, MongoDB, Cassandra) xử lý UUID hiệu quả.
Tính năng chính
- Tạo UUID v1 (dựa trên timestamp)
- Tạo UUID v4 (ngẫu nhiên - phổ biến nhất)
- Tạo UUID v5 (dựa trên tên SHA-1)
- Nil UUID (toàn số 0)
- Tạo hàng loạt (1-100 UUID cùng lúc)
- Định dạng chữ hoa/chữ thường
- Bao gồm/loại bỏ dấu gạch ngang
- Bao gồm/loại bỏ dấu ngoặc { }
- Sao chép tất cả UUID vào clipboard
- Tải xuống dưới dạng file text
- 100% phía client - random mã hóa an toàn
- Không giao tiếp với server
- Hoạt động offline
- Hỗ trợ chế độ tối
- Thân thiện với mobile