Một UUID v4 điển hình
550e8400-e29b-41d4-a716-446655440000
Năm nhóm hex ngăn cách bằng dấu gạch nối. Chữ số 4 ở vị trí thứ 13 cho biết đây là UUID phiên bản 4 (ngẫu nhiên).
Tạo hàng loạt UUID v1/v4, sẵn sàng để sao chép.
Cập nhật lần cuối
Coddy dạy bạn bằng cách viết code thật ngay trên trình duyệt: bài học tương tác, phản hồi tức thì và AI hỗ trợ khi bạn bị kẹt.
Công cụ tạo UUID sinh ra các Universally Unique Identifier: giá trị 128 bit mà về mặt thống kê gần như chắc chắn không trùng với bất kỳ UUID nào được tạo ở nơi khác. Lập trình viên dùng chúng làm khóa chính cho các hàng trong cơ sở dữ liệu, id cho tài nguyên API, tên cho dữ liệu test, id tin nhắn trong hàng đợi và mã định danh trong hệ thống phân tán.
UUID hữu ích vì mỗi máy có thể tự tạo một UUID và yên tâm rằng không ai khác tạo ra cùng giá trị. Không cần bộ đếm trung tâm, không cần đồng bộ thứ tự, không cần gọi lên máy chủ. Nhờ vậy UUID rất tiện ở mọi nơi hệ thống cần tự tạo id mà không phải xin phép.
*GUID* (Globally Unique Identifier) là tên Microsoft đặt cho cùng loại mã định danh 128 bit này. Trong công việc lập trình hằng ngày, GUID và UUID là một: mỗi hệ sinh thái chỉ chuộng một cái tên khác nhau.
8-4-4-4-12.Chọn v4 cho id ngẫu nhiên, v7 cho id sắp xếp theo thời gian và đánh chỉ mục tốt, hoặc v1 cho các hệ thống cũ cần timestamp + node id.
Tạo một UUID khi cần nhanh một id, hoặc tạo tối đa 1.000 UUID một lần khi cần dữ liệu mẫu cho cơ sở dữ liệu hay giả lập response API.
Bật hoặc tắt chữ hoa, dấu gạch nối và dấu ngoặc nhọn ({...}) cho khớp với quy ước mà cơ sở dữ liệu, code hoặc nền tảng của bạn cần.
Sao chép một UUID hoặc cả danh sách. Mọi thứ đều được tạo ngay trong trình duyệt.
Năm phiên bản UUID được dùng rộng rãi và khi nào nên chọn từng phiên bản.
| Phiên bản | Nguồn tạo tính duy nhất | Khi nào nên dùng |
|---|---|---|
| v1 | Timestamp + địa chỉ MAC | Hệ thống cũ; có thể làm lộ địa chỉ MAC của máy |
| v3 | Hash MD5 của tên + namespace | Id cố định suy ra từ một chuỗi |
| v4 | Ngẫu nhiên mật mã | Mặc định cho hầu hết ứng dụng: chọn cái này nếu bạn phân vân |
| v5 | Hash SHA-1 của tên + namespace | Giống v3 nhưng dùng hàm hash mạnh hơn |
| v7 | Unix timestamp (ms) + ngẫu nhiên | Khóa chính cơ sở dữ liệu: sắp xếp được theo thời gian |
550e8400-e29b-41d4-a716-446655440000
Năm nhóm hex ngăn cách bằng dấu gạch nối. Chữ số 4 ở vị trí thứ 13 cho biết đây là UUID phiên bản 4 (ngẫu nhiên).
{ "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Lesson 1", "createdAt": "2026-04-25T10:00:00Z"}API thường trả UUID dưới dạng chuỗi trong JSON. Nhiều cơ sở dữ liệu còn có kiểu cột UUID riêng, lưu 16 byte thay vì 36 ký tự.
550e8400-e29b-41d4-a716-446655440000
550E8400-E29B-41D4-A716-446655440000
{550E8400-E29B-41D4-A716-446655440000}
550e8400e29b41d4a716446655440000
Cùng một giá trị 128 bit, bốn cách hiển thị khác nhau. Hãy chọn một định dạng và dùng thống nhất trong dự án: trộn nhiều định dạng sẽ gây ra những bug so sánh khó hiểu.
Math.random() hoặc bộ sinh số ngẫu nhiên yếu. Luôn dùng crypto.randomUUID() của nền tảng hoặc hàm tương đương.crypto.randomUUID() trong trình duyệt và Node.js, uuid.uuid4() trong Python, UUID.randomUUID() trong Java.UUID được dùng ở bất cứ đâu hệ thống cần một mã định danh duy nhất toàn cầu mà không phải phối hợp với máy chủ. Khóa chính cơ sở dữ liệu, id tài nguyên REST, id sự kiện phân tán, id liên kết log và id người dùng ẩn danh đều là những cách dùng phổ biến.
Dùng UUID v4 cho id ngẫu nhiên thông thường. Dùng UUID v7 nếu bạn muốn id sắp xếp theo thời gian, hợp làm khóa chính cơ sở dữ liệu. Chỉ dùng v3 / v5 khi bạn thật sự cần id cố định sinh ra từ một cái tên.
Về lý thuyết thì có, nhưng với UUID được tạo đúng cách thì xác suất gần như bằng không: dù tạo một tỷ UUID v4 mỗi giây trong 85 năm, khả năng xảy ra trùng lặp vẫn thấp hơn một phần tỷ.
Lưu dạng chuỗi vẫn ổn và dễ chuyển đổi giữa các hệ thống. Nhiều cơ sở dữ liệu còn có kiểu UUID riêng, lưu giá trị trong 16 byte: tốn một nửa dung lượng và so sánh nhanh hơn. Hãy chọn định dạng hợp với cơ sở dữ liệu và công cụ của bạn.