Lập trình

GUID / UUID Generator

Tạo UUID v4, chuyển GUID sang short GUID và chuyển ngược lại ngay trong trình duyệt.

Trình tạo UUID
Số lượng UUID
UUID đã tạo sẽ xuất hiện ở đây.
Bộ chuyển GUID / short GUID
Việc tạo và chuyển đổi chạy cục bộ trong trình duyệt. Short GUID dùng Base64 URL-safe không padding và có thể chuyển ngược về GUID ban đầu.
Cơ sở dữ liệu gắn các khóa duy nhất cùng hai viên xúc xắc, tượng trưng cho UUID ngẫu nhiên

Cách sử dụng

  1. Chọn số lượng cần tạo, từ 1 đến 50.
  2. Bấm Tạo GUID để tạo UUID v4 ngẫu nhiên, hoặc Tạo Short GUID để tạo dạng rút gọn 22 ký tự.
  3. Bấm vào một giá trị để sao chép, hoặc dùng nút chuyển đổi bên cạnh để đổi giá trị đó giữa dạng GUID và short GUID.
  4. Muốn chuyển ID có sẵn, dán mỗi GUID hoặc short GUID trên một dòng vào bộ chuyển đổi rồi chọn chiều chuyển.

UUID và GUID khác nhau thế nào

UUID (universally unique identifier, mã định danh duy nhất toàn cục) là một giá trị 128 bit, viết thành 32 chữ số thập lục phân chia làm năm nhóm, ví dụ 6f9619ff-8b86-d011-b42d-00c04fc964ff. GUID là tên Microsoft dùng cho cùng thứ này. Định dạng giống hệt nhau; công cụ của Windows hay in GUID bằng chữ hoa hoặc đặt trong dấu ngoặc nhọn, và bộ chuyển đổi ở đây nhận cả hai kiểu.

Các phiên bản UUID

Phiên bản là chữ số đầu tiên của nhóm thứ ba. Công cụ này tạo phiên bản 4, loại ngẫu nhiên, bằng hàm crypto.randomUUID() của trình duyệt, lấy số ngẫu nhiên từ nguồn an toàn mật mã.

Phiên bảnTạo từDùng cho
v1Thời gian và địa chỉ MAC của máyHệ thống cũ; để lộ thời điểm và nơi tạo
v4122 bit ngẫu nhiênID dùng chung, khóa bản ghi, dữ liệu thử
v5Băm SHA-1 của namespace và tênCùng đầu vào luôn ra cùng UUID
v7Thời gian Unix (mili giây) cộng bit ngẫu nhiênKhóa chính cơ sở dữ liệu sắp xếp theo thời gian tạo (RFC 9562)

Hai UUID v4 có thể trùng nhau không?

Trên thực tế là không. UUID v4 có 122 bit ngẫu nhiên, tức khoảng 5,3 × 10^36 giá trị. Phải tạo khoảng 2,7 × 10^18 UUID thì xác suất có một cặp trùng mới lên tới 50%, tương đương mỗi giây tạo một tỷ UUID trong 85 năm. Lỗi trùng thường do bộ sinh số ngẫu nhiên hỏng, không phải do định dạng.

Short GUID là gì?

Short GUID lưu cùng 16 byte đó bằng Base64 an toàn cho URL, không có ký tự đệm, nên chỉ còn 22 ký tự thay vì 36. Dạng này tiện dùng trong URL và tên file. Ví dụ 6f9619ff-8b86-d011-b42d-00c04fc964ff thành b5YZ_4uG0BG0LQDAT8lk_w và chuyển ngược lại chính xác.

Các byte được lấy theo đúng thứ tự viết. Hàm Guid.ToByteArray() của .NET đảo thứ tự byte của ba nhóm đầu, nên Base64 tạo từ nó trong C# sẽ khác với công cụ này cho cùng một GUID.

Tạo UUID trong code

JavaScript: crypto.randomUUID(). Python: import uuid; uuid.uuid4(). C#: Guid.NewGuid(). Java: UUID.randomUUID(). PostgreSQL 13 trở lên: SELECT gen_random_uuid(). Dùng trang này khi bạn cần nhanh vài giá trị cho file cấu hình, dữ liệu mẫu hoặc kiểm thử thủ công.

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

UUID tạo ở đây có dùng cho môi trường production được không?

Được. Đây là UUID phiên bản 4 chuẩn, lấy từ bộ sinh số ngẫu nhiên an toàn của trình duyệt, và được tạo ngay trên thiết bị của bạn nên không ai khác thấy.

UUID có phải là GUID không?

Đúng. Cả hai là mã định danh 128 bit cùng định dạng 8-4-4-4-12. GUID là tên dùng trong sản phẩm Microsoft; UUID là tên dùng trong RFC và hầu hết nền tảng khác.

Có nên dùng UUID làm khóa chính cơ sở dữ liệu?

Phù hợp khi ID được tạo ở nhiều nơi hoặc không được để đoán ra. UUID v4 ngẫu nhiên được chèn theo thứ tự lộn xộn, có thể làm chậm chỉ mục B-tree lớn; UUID v7 vẫn duy nhất mà còn sắp xếp theo thời gian.

UUID có phân biệt chữ hoa, chữ thường không?

Không. Chữ số thập lục phân viết hoa hay thường đều cùng giá trị. Chuẩn khuyến nghị xuất ra chữ thường, và công cụ này tạo chữ thường.

Gặp lỗi hoặc có ý tưởng? Báo lỗi hoặc góp ý

Share

Bạn cũng có thể thích