Trình tạo UUID / ULID / NanoID

Tạo các giá trị UUID v4, UUID v7, ULID và NanoID ngay lập tức, ngay trong trình duyệt của bạn.

Định dạng

122 bit ngẫu nhiên thuần túy — không theo thứ tự, không thể đoán trước.

ID đã tạo
Sẵn sàng.

Các ID của bạn được tạo cục bộ bằng thuật toán ngẫu nhiên mạnh của trình duyệt. Không có gì được gửi đến BroBroGo.

Hỏi đáp

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

UUID v4 chứa 122 bit ngẫu nhiên thuần túy dưới định dạng 36 ký tự quen thuộc, nhưng thứ tự ngẫu nhiên của nó làm giảm hiệu năng lập chỉ mục (index) của cơ sở dữ liệu. UUID v7 giữ nguyên cấu trúc đó nhưng bắt đầu bằng một nhãn thời gian dạng mili giây, giúp các ID được sắp xếp gần như theo thời gian tạo — rất tiện lợi cho khóa chính (primary key). ULID cũng áp dụng cơ chế ưu tiên thời gian tương tự nhưng trong một chuỗi 26 ký tự ngắn hơn, không phân biệt chữ hoa chữ thường. NanoID bỏ qua việc sắp xếp thời gian để cung cấp một ID nhỏ gọn hơn nhiều và có thể tùy chỉnh hoàn toàn — bạn tự chọn độ dài và bộ ký tự.

Các ID này có đủ ngẫu nhiên để không thể đoán trước không?

Có — mọi ID đều được tạo bằng thuật toán ngẫu nhiên mạnh về mặt mật mã học của trình duyệt, không phải từ một nguồn có thể dự đoán trước. UUID v4 và bảng chữ cái mặc định của NanoID mang lại hơn 100 bit ngẫu nhiên. UUID v7 và ULID đánh đổi khoảng 48 bit trong số đó để dành cho nhãn thời gian ở đầu, vì vậy hãy coi các định dạng có tiền tố thời gian này là các ID có thể sắp xếp được hơn là các chuỗi bí mật hoàn toàn.

Tôi có thể thay đổi độ dài và bộ ký tự của NanoID không?

Có — khi chuyển sang NanoID, công cụ này sẽ hiển thị một thanh trượt độ dài (mặc định là 21 ký tự, khớp với thư viện gốc) cùng với một trường bảng chữ cái có thể chỉnh sửa. Việc thu hẹp độ dài hoặc thu nhỏ bộ ký tự sẽ làm giảm khả năng chống đụng độ, vì vậy hãy giữ độ dài đủ lớn nếu bạn giảm bớt số lượng ký tự.

Cấu trúc và đặc tính của các định dạng định danh phổ biến

Công cụ hỗ trợ tạo bốn định dạng định danh duy nhất phổ biến hiện nay bao gồm UUID v4, UUID v7, ULID và NanoID. Mỗi định dạng được thiết kế với cấu trúc dữ liệu và mục đích sử dụng riêng biệt nhằm giải quyết các bài toán cụ thể trong phát triển phần mềm và quản trị cơ sở dữ liệu.

  • UUID v4 (Universally Unique Identifier version 4): Đây là định dạng định danh ngẫu nhiên truyền thống, bao gồm 122 bit ngẫu nhiên được biểu diễn dưới dạng chuỗi 36 ký tự (bao gồm cả các dấu gạch ngang). Do tính ngẫu nhiên thuần túy và không chứa thông tin thời gian, UUID v4 không thể đoán trước nhưng lại không có tính thứ tự.
  • UUID v7 (Universally Unique Identifier version 7): Định dạng này vẫn giữ nguyên cấu trúc hiển thị 36 ký tự như UUID truyền thống nhưng thay đổi cách phân bổ bit. UUID v7 bắt đầu bằng một nhãn thời gian (timestamp) tính theo đơn vị mili giây, phần còn lại là các bit ngẫu nhiên. Điều này giúp các ID được sắp xếp gần như theo thời gian tạo.
  • ULID (Universally Unique Lexicographically Sortable Identifier): ULID là một chuỗi gồm 26 ký tự, không phân biệt chữ hoa chữ thường. Tương tự như UUID v7, ULID bắt đầu bằng một nhãn thời gian để hỗ trợ sắp xếp theo thứ tự thời gian tạo.
  • NanoID: Định dạng định danh nhỏ gọn, không theo thứ tự thời gian. NanoID có độ dài mặc định là 21 ký tự nhưng cho phép tùy chỉnh linh hoạt cả về độ dài lẫn bộ ký tự (bảng chữ cái) được sử dụng để tạo ID.

Cơ chế hoạt động và các tùy chọn cấu hình

Công cụ cho phép tạo từ 1 đến 100 ID cùng một lúc. Khi người dùng thay đổi bất kỳ tùy chọn cấu hình nào trên giao diện, hệ thống sẽ tự động tái tạo lại toàn bộ danh sách ID mới.

Các tham số điều chỉnh cho UUID và ULID

Đối với các định dạng UUID (v4 và v7), người dùng có thể bật tắt hai tùy chọn hiển thị trực quan:

  • Chữ hoa: Chuyển đổi toàn bộ ký tự chữ cái trong chuỗi UUID thành dạng in hoa.
  • Bao gồm dấu gạch ngang: Giữ lại hoặc loại bỏ các dấu gạch ngang phân tách phân đoạn trong chuỗi 36 ký tự tiêu chuẩn.

Tùy chỉnh nâng cao cho NanoID

Khi chọn định dạng NanoID, giao diện sẽ cung cấp thêm hai thanh điều khiển:

  • Độ dài: Một thanh trượt cho phép điều chỉnh độ dài của chuỗi ID trong khoảng từ 2 đến 36 ký tự (mặc định là 21 ký tự).
  • Bảng chữ cái: Trường văn bản cho phép nhập thủ công các ký tự sẽ được sử dụng để tạo ID.

Quy tắc bắt buộc là bảng chữ cái của NanoID phải chứa ít nhất 2 ký tự khác nhau. Nếu người dùng thay đổi trường này chỉ còn 1 ký tự duy nhất, hệ thống sẽ kích hoạt cơ chế kiểm soát lỗi: xóa toàn bộ kết quả hiện tại, đưa số lượng ID về mức 0, vô hiệu hóa nút sao chép và hiển thị thông báo lỗi "Bảng chữ cái cần chứa ít nhất 2 ký tự khác nhau.".

So sánh tính năng sắp xếp và khả năng chống đụng độ

Việc lựa chọn định dạng ID phù hợp đòi hỏi sự cân nhắc giữa kích thước lưu trữ, hiệu năng lập chỉ mục và mức độ bảo mật thông tin.

Định dạng ID Độ dài tiêu chuẩn Có chứa nhãn thời gian Khả năng sắp xếp Đặc điểm nổi bật
UUID v4 36 ký tự Không Không 122 bit ngẫu nhiên thuần túy, không thể đoán trước.
UUID v7 36 ký tự Có (mili giây) Sắp xếp tương đối Bắt đầu bằng nhãn thời gian, tối ưu cho khóa chính cơ sở dữ liệu.
ULID 26 ký tự Có (mili giây) Sắp xếp tương đối Chuỗi ngắn hơn UUID, không phân biệt chữ hoa chữ thường.
NanoID 21 ký tự (tùy chỉnh) Không Không Nhỏ gọn, cho phép tùy chỉnh hoàn toàn độ dài và bộ ký tự.

Các định dạng dựa trên thời gian như UUID v7 và ULID mang lại lợi ích lớn cho việc lập chỉ mục (indexing) trong cơ sở dữ liệu vì chúng được sắp xếp tuần tự theo thời gian tạo. Tuy nhiên, cả UUID v7 và ULID đều không đảm bảo thứ tự sắp xếp tuyệt đối đối với các ID được tạo ra trong cùng một mili giây.

Về mặt an toàn dữ liệu, việc rút ngắn độ dài hoặc thu hẹp bảng chữ cái của NanoID sẽ làm giảm không gian entropy, từ đó làm tăng xác suất xảy ra đụng độ (trùng lặp ID). Do đó, người dùng cần duy trì độ dài chuỗi đủ lớn tương ứng nếu quyết định giảm bớt số lượng ký tự trong bảng chữ cái.

Bảo mật dữ liệu và quyền riêng tư khi xử lý

Mọi thao tác xử lý dữ liệu và tạo ID đều được thực hiện cục bộ ngay trong trình duyệt web của người dùng. Công cụ sử dụng thuật toán ngẫu nhiên mạnh có sẵn của trình duyệt để đảm bảo tính ngẫu nhiên và độ an toàn mật mã học cho các ID được tạo ra. Không có bất kỳ dữ liệu, tham số cấu hình hay ID nào được gửi về máy chủ của BroBroGo.

Sau khi danh sách ID được tạo ra, người dùng có thể nhấp chuột trực tiếp vào từng dòng ID riêng lẻ để sao chép nhanh ký tự đó vào bộ nhớ tạm (clipboard), hoặc sử dụng nút chức năng để sao chép toàn bộ danh sách cùng một lúc.

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

Sự khác biệt giữa UUID v4, UUID v7, ULID và NanoID là gì? UUID v4 chứa 122 bit ngẫu nhiên thuần túy dưới định dạng 36 ký tự quen thuộc, nhưng thứ tự ngẫu nhiên của nó làm giảm hiệu năng lập chỉ mục (index) của cơ sở dữ liệu. UUID v7 giữ nguyên cấu trúc đó nhưng bắt đầu bằng một nhãn thời gian dạng mili giây, giúp các ID được sắp xếp gần như theo thời gian tạo — rất tiện lợi cho khóa chính (primary key). ULID cũng áp dụng cơ chế ưu tiên thời gian tương tự nhưng trong một chuỗi 26 ký tự ngắn hơn, không phân biệt chữ hoa chữ thường. NanoID bỏ qua việc sắp xếp thời gian để cung cấp một ID nhỏ gọn hơn nhiều và có thể tùy chỉnh hoàn toàn — bạn tự chọn độ dài và bộ ký tự.

Các ID này có đủ ngẫu nhiên để không thể đoán trước không? Có — mọi ID đều được tạo bằng thuật toán ngẫu nhiên mạnh về mặt mật mã học của trình duyệt, không phải từ một nguồn có thể dự đoán trước. UUID v4 và bảng chữ cái mặc định của NanoID mang lại hơn 100 bit ngẫu nhiên. UUID v7 và ULID đánh đổi khoảng 48 bit trong số đó để dành cho nhãn thời gian ở đầu, vì vậy hãy coi các định dạng có tiền tố thời gian này là các ID có thể sắp xếp được hơn là các chuỗi bí mật hoàn toàn.

Tôi có thể thay đổi độ dài và bộ ký tự của NanoID không? Có — khi chuyển sang NanoID, công cụ này sẽ hiển thị một thanh trượt độ dài (mặc định là 21 ký tự, khớp với thư viện gốc) cùng với một trường bảng chữ cái có thể chỉnh sửa. Việc thu hẹp độ dài hoặc thu nhỏ bộ ký tự sẽ làm giảm khả năng chống đụng độ, vì vậy hãy giữ độ dài đủ lớn nếu bạn giảm bớt số lượng ký tự.

Tại sao UUID v7 và ULID không đảm bảo thứ tự tuyệt đối? Cả hai định dạng này sử dụng nhãn thời gian với độ phân giải tính bằng mili giây ở phần đầu của chuỗi. Nếu có nhiều ID được tạo ra trong cùng một mili giây, phần nhãn thời gian của chúng sẽ giống hệt nhau. Lúc này, thứ tự giữa các ID đó sẽ được quyết định bởi các bit ngẫu nhiên phía sau, do đó không thể đảm bảo thứ tự sắp xếp chính xác tuyệt đối cho các thực thể được tạo ra trong cùng một khoảnh khắc cực ngắn này.