Tất cả công cụ

Trình tạo UUID

UUID v4 là mã định danh ngẫu nhiên 128 bit được định dạng là 8-4-4-4-12 hex (ví dụ: 550e8400-e29b-41d4-a716-446655440000). Sử dụng cho các khóa chính của cơ sở dữ liệu, ID tương quan và tính duy nhất của tên tệp mà không cần bộ cấp phát trung tâm. Được tạo cục bộ bằng crypto.getRandomValues khi có sẵn.
Đầu ra
57f16e97-ebca-47c9-a0d7-ebe499bf791a

Cách tạo UUID

1. Nhấp tạo (hoặc tạo nhiều UUID nếu được hỗ trợ).
2. Sao chép UUID vào bảng nhớ tạm.
3. Dán vào yêu cầu API, chèn SQL hoặc cấu hình.
4. Lưu trữ chữ thường một cách nhất quán nếu DB của bạn phân biệt chữ hoa chữ thường.

Các trường hợp sử dụng UUID

Khóa chính cơ sở dữ liệu

Chèn người dùng có id UUID thay vì int tuần tự — an toàn cho các API công khai mà không cần liệt kê.

Yêu cầu ID tương quan

Thêm tiêu đề X-Request-ID với UUID mới cho mỗi lệnh gọi HTTP cho nhật ký theo dõi được phân phối.

Tiền tố khóa đối tượng S3

uploads/{uuid}/photo.jpg tránh xung đột tên tệp trong nhóm dùng chung.

Khi nào nên dùng UUID v4

Khi ID phải là duy nhất trên các hệ thống phân tán mà không có sự phối hợp.
Khi hiển thị ID công khai — UUID ngẫu nhiên không cho phép đoán.
Khi hợp nhất dữ liệu từ máy khách ngoại tuyến mà không có xung đột ID.

Khi không sử dụng UUID v4

Khi thứ tự mà con người có thể đọc được theo trình tự (số hóa đơn) có vấn đề — hãy dùng trình tự.
Khi phân mảnh chỉ mục trên UUID PK ngẫu nhiên làm tổn hại đến hiệu suất của DB ở quy mô lớn — hãy xem xét UUID v7 hoặc ULID.
Khi cần URL nhỏ gọn — hãy dùng id ngắn hoặc nanoid.

Phiên bản nibble

Ký tự sau khối gạch nối thứ ba biểu thị phiên bản — 4 có nghĩa là UUID ngẫu nhiên. Xác thực định dạng nhanh chóng trong quá trình đánh giá mã.

Lập chỉ mục cơ sở dữ liệu

UUID ngẫu nhiên khiến trang cây B bị phân chia so với số nguyên tuần tự — có thể chấp nhận cho đến hàng tỷ hàng; màn hình chèn perf.

UUID trong URL

Phạt tiền đối với nguồn lực tư nhân; kết hợp với xác thực. Đừng chỉ dựa vào tính bảo mật của UUID để ủy quyền.

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

UUID v4 so với v1?

v4 là ngẫu nhiên; v1 bao gồm dấu thời gian và nút có nguồn gốc từ MAC — v4 được ưu tiên cho quyền riêng tư.

Xác suất va chạm?

Thấp về mặt kinh tế đối với các mục đích thực tế — nghịch lý sinh nhật không liên quan ở quy mô ứng dụng.

Chữ hoa hay chữ thường?

RFC cho phép cả hai — chọn một quy ước cho mỗi dự án; Loại uuid của Postgres được chuẩn hóa.

Yêu cầu dấu gạch nối?

Định dạng chuẩn bao gồm dấu gạch nối; một số hệ thống chấp nhận 32 ký tự hex mà không cần.

An toàn về mặt mật mã?

Sử dụng trình duyệt CSPRNG khi có sẵn — không phải Math.random.

Tôi có thể tạo bao nhiêu ký tự?

Không có giới hạn thực tế cục bộ — tạo một ký tự tại một thời điểm hoặc theo đợt cho mỗi giao diện người dùng.