Tạo & kiểm tra UUID

Tạo UUID v4 ngẫu nhiên an toàn mật mã hoặc UUID v7 sắp xếp được, một hay một nghìn cái cùng lúc, và phân tích mọi UUID hay GUID để xem phiên bản và timestamp nhúng bên trong.

Chạy trên trình duyệtKhông cần đăng kýKhông tải lên gì

UUID đã tạo

Cách dùng Tạo UUID

  1. Chọn v4 cho ID hoàn toàn ngẫu nhiên hoặc v7 cho ID sắp xếp theo thời điểm tạo.
  2. Đặt số lượng cần (tối đa 1.000) và bấm Tạo.
  3. Tùy chọn chuyển sang chữ hoa, bỏ gạch nối hoặc bọc trong ngoặc nhọn cho GUID kiểu Microsoft.
  4. Bấm vào UUID lớn để sao chép, hoặc dùng Sao chép tất cả / Tải xuống .txt cho cả loạt.
  5. Dán bất kỳ UUID nào vào phần phân tích để kiểm tra và đọc phiên bản, variant và timestamp của nó.

UUID là gì?

UUID (Universally Unique Identifier), trên nền tảng Microsoft gọi là GUID, là giá trị 128-bit được viết thành 32 chữ số hex chia làm năm nhóm: 8-4-4-4-12. Định dạng được định nghĩa trong RFC 9562, thay thế RFC 4122 từ năm 2024. Một chữ số mã hóa phiên bản (chữ số hex thứ 13) và các bit cao của chữ số thứ 17 mã hóa variant.

UUID v4 và UUID v7

v4v7
Nội dung122 bit ngẫu nhiênTimestamp Unix mili giây 48-bit + 74 bit ngẫu nhiên
Thứ tự sắp xếpNgẫu nhiênTheo thời gian
Index cơ sở dữ liệuChèn ngẫu nhiên gây phân mảnh index B-treeGhi nối vào cuối, thân thiện với index hơn nhiều
Lộ thời điểm tạoKhôngCó

Dùng v7 cho khóa chính cơ sở dữ liệu và ID sự kiện khi thứ tự chèn quan trọng. Dùng v4 khi ID không được để lộ thời điểm tạo. Công cụ này giữ các ID v7 tăng dần nghiêm ngặt kể cả khi nhiều ID được tạo trong cùng một mili giây.

Chúng độc nhất tới mức nào?

Với 122 bit ngẫu nhiên, bạn sẽ cần tạo khoảng 2,7 tỷ tỷ UUID v4 mới đạt 50% khả năng xảy ra một lần trùng lặp. Trang này dùng bộ sinh số ngẫu nhiên an toàn mật mã của trình duyệt (crypto.getRandomValues), không bao giờ dùng Math.random().

Tạo UUID trong code

// JavaScript (browsers, Node 19+)
crypto.randomUUID()
# Python
import uuid; uuid.uuid4()
-- PostgreSQL 13+
SELECT gen_random_uuid();

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

Các UUID này có an toàn để dùng trong production không?
Có. Chúng được tạo cục bộ bằng bộ sinh số ngẫu nhiên an toàn của Web Crypto API và tuân theo RFC 9562. Không có gì được gửi tới hay ghi log bởi máy chủ.
UUID và GUID khác nhau thế nào?
Chúng là một. GUID là tên gọi của Microsoft và thường được viết hoa kèm ngoặc nhọn, như {3F2504E0-4F89-11D3-9A0C-0305E82C3301}. Dùng các tùy chọn phía trên để tạo định dạng đó.
Tôi có thể lấy thời điểm tạo từ UUID không?
Chỉ với các phiên bản dựa trên thời gian. v7 lưu mili giây Unix trong 48 bit đầu, còn v1 và v6 lưu timestamp theo đơn vị 100 nano giây. Dán một UUID vào phần phân tích để xem ngày. v4 không chứa thông tin thời gian.
Có nên dùng UUID làm khóa chính cơ sở dữ liệu không?
Chúng phù hợp cho hệ thống phân tán và ID công khai. Hãy ưu tiên v7 hơn v4 để các hàng mới nằm ở cuối index, và lưu trong cột uuid gốc hoặc cột nhị phân 16 byte thay vì chuỗi 36 ký tự.
Nil UUID là gì?
Là giá trị toàn số 0 00000000-0000-0000-0000-000000000000, dùng làm giá trị giữ chỗ nghĩa là “không có UUID”. RFC 9562 cũng định nghĩa max UUID toàn chữ f.

Công cụ liên quan