Cách dùng công cụ tạo UUID
- Năm UUID mới xuất hiện ngay khi trang tải xong. Bấm Sao chép để chép chúng, mỗi UUID một dòng.
- Đặt Số lượng từ 1 đến 500. Một lô mới sẽ được tạo ngay lập tức.
- Bật hoặc tắt Chữ hoa và Dấu gạch ngang cho khớp định dạng hệ thống của bạn cần. Các UUID cũ chỉ được định dạng lại chứ không bị thay thế.
- Bấm Tạo để lấy một lô mới, hoặc Tải về .txt để lưu danh sách thành tệp văn bản.
UUID là gì?
UUID (universally unique identifier, mã định danh duy nhất toàn cầu), còn gọi là GUID, là một số 128 bit dùng để đánh dấu bản ghi, tệp, thiết bị và thông điệp mà không cần hỏi máy chủ trung tâm xem mã nào còn trống. Nó được viết bằng 32 chữ số thập lục phân chia thành năm nhóm theo kiểu 8-4-4-4-12, tổng cộng 36 ký tự.
Công cụ này tạo UUID phiên bản 4, loại ngẫu nhiên được định nghĩa trong RFC 9562. Trong 128 bit, có 6 bit cố định để đánh dấu phiên bản và biến thể, còn lại 122 bit là ngẫu nhiên. Chúng đến từ bộ tạo số ngẫu nhiên an toàn mật mã của trình duyệt: crypto.randomUUID(), hoặc crypto.getRandomValues() với các bit phiên bản được đặt thủ công ở những trang không có randomUUID. Không có gì được tạo trên máy chủ và không có gì bị ghi lại.
Đọc một UUID: ví dụ cụ thể
Lấy 3f2504e0-4f89-41d3-9a0c-0305e82c3301. Chữ số đầu của nhóm thứ ba là 4: đó là phiên bản. Chữ số đầu của nhóm thứ tư là 9; viết nhị phân là 1001, bắt đầu bằng hai bit 10 đánh dấu biến thể tiêu chuẩn. Ở mọi UUID phiên bản 4, chữ số này là 8, 9, a hoặc b. Mọi phần còn lại là ngẫu nhiên. Bỏ các dấu gạch ngang, cùng giá trị đó là chuỗi 32 ký tự 3f2504e04f8941d39a0c0305e82c3301.
“Duy nhất” đến mức nào?
Với 122 bit ngẫu nhiên, có khoảng 5,3 × 10³⁶ UUID khả dĩ. Theo nghịch lý ngày sinh nhật, bạn phải tạo khoảng 2,7 × 10¹⁸ UUID thì khả năng có ít nhất một cặp trùng mới đạt 50%. Nếu bạn tạo một tỷ UUID, xác suất có hai chuỗi trùng nhau chỉ vào khoảng 1 trên 10¹⁹, nhỏ hơn nhiều so với khả năng lỗi phần cứng làm hỏng dữ liệu. Vì vậy các hệ thống phân tán có thể tự tạo mã một cách độc lập rồi gộp lại an toàn.
Mẹo cho lập trình viên
- Khóa cơ sở dữ liệu: UUID v4 ngẫu nhiên làm các lần chèn rải khắp chỉ mục. Với bảng lớn, hãy cân nhắc phiên bản 7, bắt đầu bằng dấu thời gian nên các dòng mới nằm gần nhau.
- Lưu trữ: hãy lưu UUID trong cột
uuidgốc (PostgreSQL) hoặc dạng 16 byte (BINARY(16)) thay vì chuỗi 36 ký tự để tiết kiệm dung lượng. - So sánh: coi UUID là không phân biệt hoa thường; tiêu chuẩn in chúng bằng chữ thường.
- Không phải mật khẩu: UUID ở đây không thể đoán trước, nhưng chúng thường xuất hiện trong URL và nhật ký. Hãy dùng token ngẫu nhiên riêng cho các bí mật như liên kết đặt lại mật khẩu.
- Dữ liệu thử nghiệm: tạo một lô 500 chuỗi, tải tệp .txt về rồi nhập vào bảng tính hoặc script dữ liệu mẫu.
Câu hỏi thường gặp
UUID và GUID khác nhau thế nào?
Trên thực tế là không khác. GUID (globally unique identifier) là tên Microsoft đặt cho cùng một định dạng 128 bit. UUID phiên bản 4 tạo từ công cụ này dùng được ở mọi nơi cần GUID.
Hai UUID tạo ra có thể trùng nhau không?
Về lý thuyết là có, trên thực tế gần như không. UUID phiên bản 4 có 122 bit ngẫu nhiên; bạn phải tạo khoảng 2,7 tỷ tỷ chuỗi mới có 50% khả năng xuất hiện một cặp trùng.
UUID có đủ an toàn để làm token không?
Chúng được tạo từ bộ sinh số ngẫu nhiên an toàn mật mã của trình duyệt nên không đoán trước được. Tuy vậy, với token phiên đăng nhập hay đặt lại mật khẩu, nên dùng token ngẫu nhiên chuyên dụng từ 128 bit trở lên.
Nên dùng chữ hoa hay chữ thường?
Tiêu chuẩn in UUID bằng chữ thường và yêu cầu so sánh không phân biệt hoa thường. Chỉ dùng chữ hoa khi hệ thống của bạn đòi hỏi, ví dụ một số công cụ trên Windows.