Short UUID là gì?
Short UUID là một kỹ thuật để nén UUID 128-bit tiêu chuẩn thành các chuỗi ngắn hơn, thân thiện với URL. Nó thường bao gồm:
- Chuyển đổi cơ số: Chuyển UUID từ cơ số 16 (hex) sang cơ số cao hơn (thường là base-58 hoặc base-62)
- Lựa chọn bộ ký tự: Sử dụng bộ ký tự an toàn cho URL không có ký tự gây nhầm lẫn
- Nén không mất dữ liệu: Giữ nguyên tất cả thông tin từ UUID gốc
Ví dụ chuyển đổi:
- UUID tiêu chuẩn:
f47ac10b-58cc-4372-a567-0e02b2c3d479
- Short UUID (base-58):
2kLrTdCQVWFjc7dYXzzB5A
Cách hoạt động của Short UUID
- Loại bỏ dấu gạch ngang khỏi UUID tiêu chuẩn
- Chuyển chuỗi hex 32 ký tự kết quả sang số thập phân
- Chuyển số thập phân sang cơ số cao hơn (58, 62, 64, v.v.)
- Thêm ký tự đệm nếu cần để đảm bảo độ dài nhất quán
Các bảng mã hóa phổ biến bao gồm:
- Base-58: Chữ số và chữ cái không có ký tự gây nhầm lẫn (0, O, I, l)
- Base-62: Tất cả các ký tự chữ số và chữ cái (a-z, A-Z, 0-9)
- Base-64: Chữ số và chữ cái cộng thêm hai ký tự đặc biệt (thường là + và /)
Ưu điểm & Cân nhắc
Advantages | Considerations |
---|---|
|
|
So sánh độ dài
Format | Length | Bộ ký tự | Example |
---|---|---|---|
UUID tiêu chuẩn | 36 ký tự | Hex + dấu gạch ngang | f47ac10b-58cc-4372-a567-0e02b2c3d479 |
Hex (không dấu gạch ngang) | 32 ký tự | 0-9, a-f | f47ac10b58cc4372a5670e02b2c3d479 |
Base-58 | 22 ký tự | Không có 0, O, I, l | 2kLrTdCQVWFjc7dYXzzB5A |
Base-62 | ~22 ký tự | Alphanumeric | 3pqLYdcw9TGKxNVgeO0gOd |
Base-64 | ~22 ký tự | Chữ số và chữ cái + ký hiệu | 9HrBC1jMQ3KlZw4CssPUeQ== |
Bảng chữ cái Base-58 phổ biến
Bảng chữ cái Base-58 được thiết kế để không gây nhầm lẫn khi hiển thị trên cả phông chữ có độ rộng cố định và phông chữ tỷ lệ:
Bộ ký tự | Content |
---|---|
Numbers | 1-9 (không bao gồm 0) |
Chữ cái viết hoa | A-Z (không bao gồm I, O) |
Chữ cái viết thường | a-z (không bao gồm l) |
Các ký tự: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Các trường hợp sử dụng phổ biến
- Rút ngắn URL: Tham số URL gọn hơn
- ID công khai: Định danh người dùng hoặc nội dung
- Tối ưu mã QR: Ít ký tự hơn = mã đơn giản hơn
- Ứng dụng di động: Truyền dữ liệu ít hơn
- Thiết kế API: Định danh tài nguyên gọn và sạch hơn
- Chia sẻ xã hội: Liên kết thân thiện với người dùng hơn
Câu hỏi thường gặp
Short UUID có độc nhất như UUID tiêu chuẩn không?
Có. Short UUID chỉ là một cách biểu diễn khác của cùng giá trị 128-bit. Quá trình chuyển đổi không mất dữ liệu, giữ nguyên tất cả các đặc tính độc nhất của UUID tiêu chuẩn.
Tôi có thể chuyển đổi giữa định dạng UUID tiêu chuẩn và Short UUID không?
Có. Quá trình chuyển đổi là hai chiều - bạn có thể mã hóa UUID tiêu chuẩn thành Short UUID và giải mã lại chính xác thành UUID tiêu chuẩn ban đầu.
Cơ số mã hóa nào được khuyến nghị nhất?
Base-58 thường được ưu tiên vì tránh các ký tự gây nhầm lẫn (0/O và l/I) đồng thời an toàn cho URL mà không cần mã hóa URL.
Short UUID ngắn hơn bao nhiêu?
UUID tiêu chuẩn có 36 ký tự (bao gồm dấu gạch ngang). Short UUID thường có 22 ký tự khi sử dụng mã hóa base-58/62/64, giảm khoảng 40%.
Tôi có nên lưu Short UUID trong cơ sở dữ liệu không?
Nên lưu định dạng UUID tiêu chuẩn trong cơ sở dữ liệu và chỉ chuyển sang Short UUID khi hiển thị cho người dùng hoặc trong URL. Điều này giúp tương thích tốt hơn với kiểu UUID của cơ sở dữ liệu.