Menu

Tạo UUID

Tạo hàng loạt UUID v1/v4, sẵn sàng để sao chép.

Tác giả Nethanel Bar, Co-founder & CEO

Cập nhật lần cuối

Sẵn sàng học code thật sự?

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 là gì?

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.

Bạn học được gì khi tạo UUID

  • UUID v4 phổ biến nhất: hoàn toàn ngẫu nhiên và rất hợp làm id cho mục đích chung.
  • UUID v7 *sắp xếp theo thời gian*, nên vừa duy nhất như v4 vừa thân thiện với chỉ mục cơ sở dữ liệu (các hàng được chèn gần đúng theo thứ tự thời gian).
  • UUID là *mã định danh*, không phải *bí mật*. Đừng dùng nó làm access token trừ khi nó là một phần của thiết kế bảo mật lớn hơn.
  • UUID hiển thị dưới dạng 32 ký tự hex chia thành 5 nhóm, ngăn cách bằng dấu gạch nối: 8-4-4-4-12.

Cách tạo UUID từng bước

  1. Chọn phiên bản

    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.

  2. Đặt số lượng

    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.

  3. Chọn định dạng

    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.

  4. Nhấn Sao chép hoặc Sao chép tất cả

    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.

Bảng tra nhanh các phiên bản UUID

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ảnNguồn tạo tính duy nhấtKhi nào nên dùng
v1Timestamp + địa chỉ MACHệ thống cũ; có thể làm lộ địa chỉ MAC của máy
v3Hash MD5 của tên + namespaceId cố định suy ra từ một chuỗi
v4Ngẫ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
v5Hash SHA-1 của tên + namespaceGiống v3 nhưng dùng hàm hash mạnh hơn
v7Unix timestamp (ms) + ngẫu nhiênKhóa chính cơ sở dữ liệu: sắp xếp được theo thời gian

Ví dụ UUID để thử

Một UUID v4 điển hình

Id ngẫu nhiên

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).

Dùng UUID trong một bản ghi JSON

Bản ghi
{  "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ự.

So sánh các kiểu định dạng

Chữ thường

550e8400-e29b-41d4-a716-446655440000

Chữ hoa

550E8400-E29B-41D4-A716-446655440000

Có ngoặc nhọn (kiểu Microsoft)

{550E8400-E29B-41D4-A716-446655440000}

Không gạch nối

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.

Lỗi thường gặp với UUID

  • Coi UUID là bằng chứng người dùng sở hữu một tài nguyên. Nó chỉ là mã định danh: hãy kiểm tra quyền của request riêng.
  • Dùng UUID làm mật khẩu hoặc session token. Mặc định chúng không đủ bí mật cho mục đích đó.
  • Trộn chữ hoa, chữ thường, có ngoặc nhọn và không gạch nối trong cùng một cơ sở dữ liệu mà không có bước chuẩn hóa rõ ràng.
  • Mặc định dùng UUID v4 làm clustered primary key trong một cơ sở dữ liệu bận rộn: id ngẫu nhiên làm phân mảnh chỉ mục. Hãy dùng v7 (hoặc id tuần tự) cho trường hợp này.
  • Tạo UUID bằng 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.

Câu hỏi thường gặp về tạo UUID

Làm sao để tạo một UUID?
Mở công cụ tạo UUID và nhấn nút, vậy là xong. Trong code, hầu hết nền tảng đều có sẵn hàm: crypto.randomUUID() trong trình duyệt và Node.js, uuid.uuid4() trong Python, UUID.randomUUID() trong Java.
UUID dùng để làm gì?

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.

UUID và GUID có giống nhau không?
Trong công việc lập trình hằng ngày thì có: cả hai chỉ cùng một định dạng mã định danh 128 bit. *GUID* là tên được ưa dùng trong hệ sinh thái Microsoft; *UUID* là tên dùng trong đặc tả IETF (RFC 4122, được cập nhật bởi RFC 9562 với v6/v7/v8) và hầu hết các nền tảng khác.
Nên dùng phiên bản UUID nào?

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.

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

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ỷ.

Có nên lưu UUID dưới dạng chuỗi không?

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.

Tìm hiểu thêm

Công cụ lập trình khác

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu