Chuyển đến nội dung chính

Tạo giá trị UUID v4 ngẫu nhiên

UUID phiên bản 4 là giá trị 128 bit, trong đó 122 bit lấy từ nguồn ngẫu nhiên an toàn về mặt mật mã. 6 bit còn lại đánh dấu phiên bản và biến thể RFC, vì vậy nhóm thứ ba của mọi UUID v4 đều bắt đầu bằng 4.

Ví dụ minh họa

Byte đầu vào ngẫu nhiên
9d 41 7c 02 e8 5b 13 f6 2a 7e c1 94 06 d3 b8 5f
Kết quả
9d417c02-e85b-43f6-aa7e-c19406d3b85f
Số UUID đã tạoXác suất có ít nhất một bản trùng
10⁶≈ 9,4 × 10⁻²⁶
10⁹≈ 9,4 × 10⁻²⁰
10¹²≈ 9,4 × 10⁻¹⁴
10¹⁵≈ 9,4 × 10⁻⁸

Số UUID cần để xác suất trùng đạt 50%: ≈ 2,71 × 10¹⁸

Cách hoạt động

  • Trình tạo điền 16 byte bằng dữ liệu ngẫu nhiên an toàn, sau đó đặt nibble cao của byte 6 thành 4 (phiên bản) và hai bit cao nhất của byte 8 thành 10 (biến thể). Do đó nhóm thứ ba bắt đầu bằng 4 và nhóm thứ tư bắt đầu bằng 8, 9, a hoặc b.
  • Với 2¹²² giá trị khả dĩ, phép xấp xỉ nghịch lý ngày sinh p ≈ 1 − e^(−n²/2¹²³) cho biết xác suất để n UUID ngẫu nhiên có ít nhất một bản trùng.
  • UUID v4 không tiết lộ dấu thời gian hay thông tin phần cứng. Hãy dùng nó làm mã định danh, không dùng làm mật khẩu hay bí mật xác thực.
Phiên bản UUID

Tạo 1-100 UUID cùng một lúc

Về UUID

UUID v1: UUID dựa trên thời gian bao gồm dấu thời gian và địa chỉ MAC của máy tính tạo UUID. Hữu ích khi bạn cần biết khi nào UUID được tạo.

UUID v4: UUID được tạo ngẫu nhiên. Đây là phiên bản được sử dụng phổ biến nhất và cung cấp tính duy nhất tốt với rò rỉ thông tin tối thiểu.

UUID v5: UUID dựa trên tên sử dụng băm SHA-1. Với cùng một không gian tên và tên, bạn sẽ luôn nhận được cùng một UUID. Hữu ích cho việc tạo UUID xác định.

Các hướng dẫn UUID khác