Bộ tạo UUID
UUIDs cung cấp các mã định danh duy nhất trên toàn cầu mà không cần phối hợp với bất kỳ cơ quan trung tâm nào. Bộ tạo này sinh ra các giá trị tương thích với RFC 4122: phiên bản v1 (gồm thời điểm ghi nhận và MAC), v4 (ngẫu nhiên) và v7 (có tiền tố thời điểm ghi nhận, có thể sắp xếp được). Bạn có thể chọn một phiên bản cụ thể, yêu cầu tạo 1 hoặc 1000 giá trị, rồi sao chép danh sách đó vào dữ liệu khởi tạo, quá trình tạo khóa API hoặc các bài kiểm thử đơn vị của mình.
Cách tạo UUID
-
1
Chọn một phiên bản
v4 dành cho trường hợp ngẫu nhiên thông thường; v7 khi thứ tự sắp xếp quan trọng; v1 khi bạn cần thông tin thời điểm (timestamp).
-
2
Lựa chọn số lượng
Một UUID hoặc một lô gồm tối đa 10.000 UUID trong một lần thực hiện.
-
3
Tạo
Các giá trị sử dụng crypto API của trình duyệt để đảm bảo tính ngẫu nhiên ở mức mật mã.
-
4
Sao chép hoặc tải xuống
Lấy dữ liệu dưới dạng danh sách mới dòng, mảng JSON hoặc tệp CSV.
Bạn nên sử dụng phiên bản UUID nào?
| Phiên bản | Cấu trúc | Tối ưu cho |
|---|---|---|
| v1 | Dấu thời gian + đồng hồ + địa chỉ MAC | Mã nhật ký cần thứ tự thời gian |
| v4 | 122 bit ngẫu nhiên | Mã định danh duy nhất thông dụng, dữ liệu kiểm thử |
| v7 | Dấu thời gian Unix (ms) + giá trị ngẫu nhiên (có thể sắp xếp) | Khóa chính trong cơ sở dữ liệu |
Vì sao phiên bản v7 đang trở thành mặc định
Phiên bản v4 có tính ngẫu nhiên cao, khiến nó rất không phù hợp làm khóa chính cho cơ sở dữ liệu: các thao tác chèn sẽ phân tán khắp cây B và làm giảm hiệu suất ghi. Phiên bản v7 (được hoàn thiện trong RFC 9562 năm 2024) bổ sung một dấu thời gian 48 bit vào phần đầu của UUID, nhờ đó các hàng mới được lưu ở cuối chỉ mục. Giải pháp này vẫn đảm bảo tính duy nhất và không yêu cầu sự phối hợp giữa các bộ phận, đồng thời cung cấp thứ tự sắp xếp sơ bộ dựa trên thời điểm tạo hàng.
Quy tắc định dạng
UUID là một giá trị 128 bit được biểu diễn dưới dạng 32 chữ số thập lục phân theo mẫu 8-4-4-4-12:
018f5b9c-7d4a-7a1b-8c0e-2e1b3c4d5e6f
^^ ^
nibble phiên bản bit biến thể
- Nibble phiên bản là ký tự thứ 13 (sau
018f5b9c-7d4a-): cụ thể là4cho v4,7cho v7, và tương tự với các phiên bản khác. - Các bit biến thể là hai bit đầu tiên của ký tự thứ 17; đối với UUID theo RFC 4122, chúng là
10(nibble cao8/9/a/b).
Tỷ lệ va chạm
Đối với phiên bản v4, xác suất tạo ra một giá trị UUID trùng nhau cực kỳ nhỏ: bạn cần tạo ra tới 2,7 quintillion (2,7 × 10¹⁸) giá trị UUID mới có khả năng xảy ra va chạm ở mức 50%. Con số này lớn hơn cả số lần các cơ sở dữ liệu thường gặp trong thực tế. Phiên bản v7 sử dụng cùng phân bố ngẫu nhiên này, do đó xác suất va chạm là tương đương trong cùng một miligiây.
Câu hỏi thường gặp
Về mặt lịch sử thì đúng, vì chúng đã tích hợp địa chỉ MAC của máy chủ tạo ra dữ liệu. Các bộ tạo dữ liệu hiện đại (bao gồm cả thiết bị này) thay thế bằng một mã định danh nút ngẫu nhiên 48 bit; do đó phiên bản v1 không còn tiết lộ thông tin phần cứng nữa.
Khi được tạo bằng CSPRNG (được công cụ này sử dụng thông qua crypto.getRandomValues), phiên bản v4 có độ bất ngờ cao đến mức có thể dùng làm mã xác thực phiên làm việc. Tuy nhiên, UUID không phải là bí mật theo nghĩa đen – nếu bạn cần một bí mật, hãy gọi nó như vậy.
Đúng vậy, chúng đảm bảo an toàn cho các địa chỉ URL (chỉ sử dụng ký tự hex và dấu gạch nối). Để hiển thị ngắn gọn hơn, bạn có thể sử dụng mã hóa base-32 hoặc base-62 cho dữ liệu gốc 128 bit, hoặc dùng ULID – cấu trúc gồm 26 ký tự và có khả năng sắp xếp tương tự như phiên bản v7.
Không. Quá trình tạo diễn ra ngay trong trình duyệt của bạn và các giá trị không bao giờ được gửi đến máy chủ.
Công cụ liên quan
Trình tạo font Instagram
Tạo "font" Unicode (đậm, nghiêng, viết tay, đẳng khoảng, fraktur) để dán thẳng vào bio, tên, caption và bình luận Instagram của bạn.
Trình tạo tên thành phố
Tạo tên thành phố, thị trấn, làng và thủ đô hư cấu cho xây dựng thế giới, bản đồ, game, truyện và dữ liệu giả lập, theo một ngôn ngữ thật hoặc một phong cách tưởng tượng.
Bộ tạo phông chữ Discord
Chuyển văn bản bình thường thành các kiểu chữ Unicode phù hợp với tên dùng trong Discord, tên máy chủ và tin nhắn, bao gồm các dạng đậm, nghiêng, fraktur, monospace và dạng trang trí.
Bộ tạo chuỗi ngẫu nhiên
Tạo các chuỗi ngẫu nhiên dài từ 1 đến 256 ký tự bằng cách sử dụng tập ký tự chữ cái, số và ký hiệu.
Trình dịch chữ nổi Braille
Dịch văn bản sang chữ nổi Braille Unicode cấp 1 và giải mã Braille trở lại thành chữ cái. Xử lý chữ hoa, chữ số và dấu câu.
Trình tạo văn bản Gothic
Chuyển văn bản thường thành các ký tự Unicode kiểu blackletter (Fraktur): 𝔄 𝔅 ℭ 𝔇. Sao chép và dán vào phần tiểu sử, biểu ngữ hoặc đồ họa của ban nhạc metal.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- UUID-Generator [DE]
- Gerador de UUID [PT]
- UUID-generator [SV]
- ตัวสร้างรหัสสุ่ม (UUID Generator) [TH]
- Generator UUID [ID]
- UUID 생성기 [KO]
- Generador de UUID [ES]
- UUIDジェネレーター [JA]
- مولّد UUID [AR]
- Générateur UUID [FR]
- UUID-generator [NL]
- Generator UUID [PL]
- Generatore UUID [IT]
- Генератор уникальных идентификаторов (UUID) [RU]
- UUID Oluşturucu [TR]
- UUID 生成器 [ZH]
- UUID Generator [EN]