Định dạng UUID là gì?
Công cụ đọc mỗi dòng một UUID, chuẩn hóa giá trị về dạng 32 ký tự hex rồi in lại theo kiểu bạn chọn. Những dòng không phải UUID bị bỏ qua và được đếm riêng.
Có chín kiểu đầu ra: chữ thường, chữ hoa, bỏ dấu gạch nối, chữ hoa bỏ gạch nối, ngoặc nhọn kiểu .NET, ngoặc đơn, base64url dài 22 ký tự, mảng byte C# và hằng SQL kèm ép kiểu ::uuid.
Cách sử dụng
- Dán các UUID, mỗi dòng một giá trị.
- Chọn kiểu đầu ra mong muốn.
- Bấm Chuyển đổi và sao chép kết quả.
Dùng để làm gì
- Chuyển giá trị từ cột cơ sở dữ liệu sang dạng dùng trong mã.
- Bỏ dấu gạch nối trước khi đưa UUID vào URL.
- Sinh hằng SQL hoặc mảng byte C# để dán vào mã nguồn.
- Rút ngắn định danh bằng base64url khi dung lượng là vấn đề.
Định dạng UUID đứng ở đâu
| Lựa chọn | Khi nào dùng |
|---|---|
formatter | Chuyển đổi giữa các kiểu viết của cùng một giá trị |
validator | Kiểm tra tính hợp lệ trước khi chuyển đổi |
regex | Tự dựng mẫu kiểm tra theo nhu cầu riêng |
Các phiên bản UUID trong một bảng
| Phiên bản | Sắp xếp được | Dựa trên | Dùng cho |
|---|---|---|---|
| v1 | Không | Dấu thời gian + địa chỉ MAC | Hệ thống cũ vẫn còn phụ thuộc v1 |
| v3 | Không | Băm MD5 của một tên | Định danh tất định khi buộc phải dùng MD5 |
| v4 | Không | 122 bit ngẫu nhiên | Hầu hết mọi định danh thông dụng |
| v5 | Không | Băm SHA-1 của một tên | Khi cùng một tên phải luôn ra cùng một định danh |
| v6 | Có | Dấu thời gian đã đảo thứ tự | Định danh sắp xếp được mà vẫn giữ độ ngẫu nhiên |
| v7 | Có | Thời gian Unix theo mili giây | Khóa chính trong cơ sở dữ liệu và định danh sự kiện |
| v8 | Không | Bố cục bit của riêng bạn | Định dạng tùy biến hoặc thử nghiệm |
Cả bảy phiên bản đều dài 128 bit và được viết theo cùng dạng 8-4-4-4-12. Điều khác nhau chỉ là ý nghĩa của các bit.
Câu hỏi thường gặp
Bỏ dấu gạch nối có làm UUID mất tính duy nhất không?
Không. Dấu gạch nối chỉ để dễ đọc; bỏ đi thì 32 ký tự hex vẫn mang đủ 128 bit. Nhiều hệ thống lưu UUID ở dạng này.
Base64url có phải một UUID khác không?
Không, đó vẫn là 16 byte đó, chỉ được mã hóa thành 22 ký tự thay vì 36. Giá trị ngắn hơn nên tiện cho URL và khóa bộ đệm.
Chuyển đổi có làm thay đổi giá trị gốc không?
Không. Mọi kiểu đầu ra đều biểu diễn cùng một chuỗi bit; bạn có thể chuyển qua lại mà không mất mát gì.