🆔 Công cụ UUID

Bộ công cụ tạo và xác thực UUID/GUID hoàn chỉnh hỗ trợ tất cả các phiên bản RFC 4122 cùng các lựa chọn hiện đại như ULID cho hệ thống phân tán.

UUID là gì?

UUID (Định danh duy nhất toàn cầu) là định dạng định danh tiêu chuẩn được thiết kế để duy nhất trên toàn cầu theo không gian và thời gian. UUID là giá trị 128-bit thường được biểu diễn dưới dạng 32 chữ số thập lục phân, hiển thị thành năm nhóm cách nhau bởi dấu gạch ngang: 123e4567-e89b-12d3-a456-426614174000.

UUID được định nghĩa bởi tiêu chuẩn RFC 9562 (thay thế cho RFC 4122 trước đó) và được sử dụng trên các nền tảng máy tính để nhận dạng thông tin mà không cần đăng ký hoặc phối hợp tập trung.

Định dạng UUID

Tất cả UUID đều có định dạng chung gồm 36 ký tự (32 chữ số thập lục phân cộng 4 dấu gạch ngang) được sắp xếp theo mẫu:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Trong đó:

  • x là bất kỳ chữ số thập lục phân nào (0-9, a-f)
  • M chỉ phiên bản UUID (1-7)
  • N chỉ biến thể UUID (thường là 8, 9, A hoặc B cho UUID hiện đại)

Quyền riêng tư & Xử lý

Tất cả việc tạo và xác thực UUID diễn ra cục bộ trên trình duyệt của bạn sử dụng tạo số ngẫu nhiên bảo mật mật mã. Công cụ không gửi định danh của bạn đi đâu - mọi thứ xử lý trên thiết bị của bạn, làm cho các tiện ích này an toàn để xử lý các định danh hệ thống nhạy cảm.

Trình tạo UUID v4

Tạo định danh UUID v4 ngẫu nhiên mật mã hoàn hảo cho khóa chính cơ sở dữ liệu và token phiên mà không tiết lộ thông tin hệ thống.

Trình tạo UUID v1

Tạo định danh UUID v1 dựa trên dấu thời gian nhúng thời gian tạo và địa chỉ MAC cho hệ thống phân tán yêu cầu khả năng truy vết.

Trình tạo UUID v3

Tạo định danh UUID v3 xác định sử dụng băm MD5 của namespace và tên để có ID nhất quán từ cùng một đầu vào.

Trình tạo UUID v5

Tạo định danh UUID v5 dựa trên tên bảo mật sử dụng băm SHA-1 để tăng khả năng chống va chạm so với v3 từ tên DNS hoặc URL.

Trình tạo UUID v6

Tạo định danh UUID v6 hiện đại kết hợp sắp xếp dấu thời gian với hiệu suất lập chỉ mục cơ sở dữ liệu cải tiến.

Trình tạo UUID v7

Tạo định danh UUID v7 tiên tiến sử dụng dấu thời gian Unix epoch với độ chính xác mili giây cho hệ thống phân tán hiện đại.

Trình tạo ULID

Tạo Định danh Duy nhất Toàn cầu Có thể Sắp xếp theo Từ điển với mã hóa 26 ký tự cho lựa chọn thay thế an toàn URL và có thể sắp xếp cho UUID.

Trình tạo Short UUID

Tạo định danh Short UUID gọn nhẹ sử dụng mã hóa base62 để giảm độ dài từ 36 xuống 22 ký tự cho mã QR và URL.

Trình tạo Nil UUID

Tạo Nil UUID RFC 4122 (toàn bộ số 0) đại diện cho giá trị UUID rỗng hoặc null cho khởi tạo cơ sở dữ liệu và trạng thái mặc định.

Bộ giải mã & Xác thực UUID

Phân tích và xác thực UUID mọi phiên bản, trích xuất thông tin nhúng như dấu thời gian, số phiên bản và chi tiết biến thể để gỡ lỗi.

Trình tạo UUID hàng loạt

Tạo hàng nghìn UUID cùng lúc cho việc tạo dữ liệu cơ sở dữ liệu, kiểm thử tải và thao tác dữ liệu hàng loạt với khả năng xuất.

Phiên bản và Trường hợp sử dụng UUID

Các công cụ này hỗ trợ tất cả các phiên bản UUID tiêu chuẩn RFC cùng với các lựa chọn thay thế hiện đại như ULID đáp ứng các nhu cầu cụ thể trong hệ thống phân tán, cơ sở dữ liệu và ứng dụng thân thiện với URL. Dù bạn cần ID ngẫu nhiên, định danh dựa trên dấu thời gian hay các lựa chọn thay thế nhỏ gọn, định dạng UUID phù hợp đảm bảo hệ thống của bạn mở rộng đáng tin cậy.

UUID tiêu chuẩn: Tạo định danh tuân thủ RFC ở các phiên bản 1, 3, 4, 5, 6 và 7 cho các trường hợp sử dụng khác nhau.

Lựa chọn thay thế hiện đại: Tạo ULID cho ID có thể sắp xếp theo thứ tự từ điển và Short UUID cho các ứng dụng nhỏ gọn.

Tạo hàng loạt: Tạo hàng nghìn UUID cùng lúc để tạo dữ liệu cơ sở dữ liệu và kiểm thử tải.

Công cụ phân tích: Giải mã UUID hiện có để trích xuất thông tin nhúng và xác thực tuân thủ định dạng.

So sánh các phiên bản UUID

VersionNamePhương pháp tạoTime-orderedTrường hợp sử dụng
UUID v1TimestampDấu thời gian hiện tại + ID node (MAC)Có (một phần)Ghi nhật ký, hệ thống phân tán
UUID v3Dựa trên tên (MD5)Hàm băm MD5 của namespace + tênNoID nhất quán cho cùng một đầu vào
UUID v4RandomSố ngẫu nhiên hoặc giả ngẫu nhiênNoMục đích chung, phổ biến nhất
UUID v5Dựa trên tên (SHA-1)Hàm băm SHA-1 của namespace + tênNoID nhất quán với hàm băm mạnh hơn
UUID v6Dấu thời gian được sắp xếp lạiDấu thời gian (được sắp xếp để phân loại)YesKhóa cơ sở dữ liệu, bản ghi có thể sắp xếp theo thời gian
UUID v7Dấu thời gian Unix EpochDấu thời gian Unix + dữ liệu ngẫu nhiênYesĐịnh danh hiện đại có thể sắp xếp
Nil UUIDUUID bằng khôngTất cả bằng số khôngN/AGiá trị đặc biệt, dấu hiệu chưa khởi tạo

Ưu điểm của UUID

  • Không cần phối hợp: Tạo ID mà không cần phối hợp trung tâm
  • Tính duy nhất toàn cầu: Xác suất va chạm cực kỳ thấp
  • Độ dài cố định: Biểu diễn chuỗi 36 ký tự nhất quán
  • Cross-Platform: Hỗ trợ trong hầu hết các ngôn ngữ lập trình
  • Versatile: Các phiên bản khác nhau cho các trường hợp sử dụng khác nhau

Lựa chọn thay thế UUID không tiêu chuẩn

Loại IDDescriptionAdvantagesDisadvantages
GUIDTriển khai UUID của MicrosoftTương đương chức năng với UUIDMột số khác biệt triển khai trong các hệ thống cũ hơn
ULIDĐịnh danh duy nhất toàn cầu có thể sắp xếp theo thứ tự từ điểnCó thể sắp xếp theo thứ tự từ điển, dấu thời gian trước, không phân biệt chữ hoa thườngMới hơn, ít được sử dụng rộng rãi hơn
Snowflake IDHệ thống ID phân tán của TwitterCó thể sắp xếp theo thời gian, nhỏ gọn (64-bit)Cần phối hợp trung tâm
CUID/CUID2ID chống va chạmNgắn, phù hợp tạo phía kháchKhông phải tiêu chuẩn chính thức
Nano IDTrình tạo ID chuỗi duy nhất nhỏ gọn, bảo mật, thân thiện với URLNhỏ hơn UUID, bảng chữ cái có thể cấu hìnhKhông tiêu chuẩn hóa
Short UUIDMã hóa ngắn hơn của UUID tiêu chuẩnBiểu diễn nhỏ gọn hơnCần chuyển đổi đến/từ UUID tiêu chuẩn
Nil UUIDUUID với tất cả bit đặt về 0Ý nghĩa ngữ nghĩa đặc biệtKhông duy nhất (dùng làm giá trị đặc biệt)
Minecraft UUIDUUID có hoặc không có dấu gạch ngangTương thích với UUID tiêu chuẩnChỉ khác biệt về định dạng

Ứng dụng thực tiễn

  • Khóa chính cơ sở dữ liệu: Đặc biệt trong cơ sở dữ liệu phân tán hoặc sao chép
  • Hệ thống phân tán: Nhận dạng thực thể trên nhiều hệ thống
  • Ứng dụng Web: Định danh phiên, theo dõi người dùng ẩn danh
  • Quản lý Nội dung: Định danh tài liệu và phương tiện
  • APIs: Định danh yêu cầu và giao dịch để truy vết và gỡ lỗi
  • Internet vạn vật: Nhận dạng thiết bị không cần đăng ký trung tâm
  • Đồng bộ dữ liệu: Nhận dạng bản ghi trên nhiều kho dữ liệu
  • Cấp phép phần mềm: Khóa sản phẩm hoặc giấy phép duy nhất

Câu hỏi thường gặp

Có gửi dữ liệu nào đến máy chủ của bạn không?

Không. Tất cả việc tạo và xác thực UUID diễn ra cục bộ trên trình duyệt của bạn sử dụng JavaScript. Định danh và dữ liệu của bạn không bao giờ rời thiết bị.

Nên sử dụng phiên bản UUID nào?

UUID v4 cho sử dụng chung (ngẫu nhiên), v1 cho dựa trên dấu thời gian với địa chỉ MAC, v6/v7 cho hệ thống dựa trên dấu thời gian hiện đại, v3/v5 cho ID xác định từ tên, và ULID cho lựa chọn thay thế có thể sắp xếp.

UUID có thực sự duy nhất không?

Có. Khi tạo đúng cách, UUID có xác suất va chạm rất thấp nên được coi là duy nhất cho mục đích thực tế. UUID ngẫu nhiên (v4) có 2^122 giá trị khả dĩ.

Sự khác biệt giữa UUID và ULID là gì?

ULID có 26 ký tự (so với 36 của UUID), có thể sắp xếp theo thứ tự từ điển theo thời gian tạo, an toàn với URL và không phân biệt chữ hoa thường trong khi vẫn giữ được đảm bảo tính duy nhất tương tự.

Tôi có thể sử dụng chúng làm khóa chính cơ sở dữ liệu không?

Có. UUID v4 rất tốt cho cơ sở dữ liệu phân tán, trong khi v6/v7 cung cấp sắp xếp theo dấu thời gian giúp cải thiện hiệu suất lập chỉ mục cơ sở dữ liệu. ULID mang lại lợi ích tương tự với độ dài ngắn hơn.

Resources