Generator UUID

Buat UUID versi 4 yang acak secara kriptografis atau versi 7 yang berurutan waktu, satu per satu atau sekaligus dalam jumlah banyak.

Berjalan 100% di browser Anda. Apa pun yang Anda tempel tidak diunggah atau disimpan.

Cara menggunakan generator UUID

  1. Pilih versinya: v4 (acak) atau v7 (berurutan menurut waktu).
  2. Tentukan berapa banyak UUID yang Anda perlukan, dari satu hingga daftar massal.
  3. Jika perlu, ubah ke huruf kapital atau hapus tanda hubungnya.
  4. Salin satu nilai atau seluruh daftar.

UUID dibuat di browser Anda menggunakan generator angka acak yang aman secara kriptografis. UUID tidak pernah dikirim ke atau disimpan di server kami, sehingga tidak ada orang lain yang tahu pengenal mana yang Anda buat.

Apa itu UUID?

UUID (Universally Unique Identifier) adalah nilai 128-bit yang dapat dibuat secara mandiri di mesin mana pun dengan peluang bentrok dengan UUID lain yang sangat kecil hingga bisa diabaikan. Tidak diperlukan registri pusat atau bolak-balik ke database, sehingga UUID ideal untuk sistem terdistribusi, klien offline, dan penggabungan data dari beberapa sumber. UUID juga umum dipakai sebagai request ID dan untuk klaim jti di dalam token yang dapat Anda periksa dengan JWT decoder. GUID (Globally Unique Identifier) adalah nama yang dipakai Microsoft untuk hal yang sama.

UUID ditulis sebagai 32 digit heksadesimal dalam lima kelompok yang dipisahkan tanda hubung, dengan pola 8-4-4-4-12 (total 36 karakter):

f47ac10b-58cc-4372-a567-0e02b2c3d479
              ^    ^
              |    varian (8, 9, a atau b)
              versi (4)

Digit pertama dari kelompok ketiga adalah versi; digit pertama dari kelompok keempat menyandikan varian. Spesifikasi yang berlaku saat ini adalah RFC 9562 (2024), yang menggantikan RFC 4122 dan menambahkan versi 6, 7, dan 8.

UUID versi 4 vs versi 7

UUID v4UUID v7
Isi122 bit acak (6 bit tetap untuk versi dan varian)Timestamp Unix 48-bit dalam milidetik, lalu bit acak
Urutan sortirAcakKurang lebih kronologis
MengungkapTidak adaWaktu pembuatannya
Paling cocok untukToken, ID publik, penggunaan umumPrimary key database, log peristiwa

Mengapa v7 lebih baik untuk indeks database

Primary key biasanya disimpan dalam indeks B-tree. Nilai v4 yang acak masuk di posisi acak, sehingga setiap insert menyentuh halaman yang berbeda, yang menyebabkan page split, lokalitas cache yang buruk, dan indeks yang membengkak pada tabel besar. Karena UUID v7 diawali dengan timestamp, nilai baru ditambahkan di dekat akhir indeks, mirip bilangan bulat auto-increment, sambil tetap mempertahankan keunggulan ID yang unik secara global dan dibuat di sisi klien.

Kesalahan umum

  • Menyimpan UUID sebagai teks. String 36 karakter memakan lebih dari dua kali ruang 16 byte mentah. Gunakan tipe uuid bawaan (PostgreSQL) atau BINARY(16) (MySQL).
  • Memakai UUID sebagai rahasia. Nilai v4 sulit ditebak, tetapi itu adalah pengenal, bukan kredensial. Nilai v7 mengungkap waktu pembuatannya dan sebagian bisa diprediksi. Gunakan token acak khusus untuk reset kata sandi dan API key.
  • Perbandingan yang peka huruf besar-kecil. RFC 9562 menetapkan output dalam huruf kecil, tetapi mewajibkan input diterima dalam huruf besar maupun kecil. Normalisasikan dulu sebelum membandingkan string.
  • Sumber acak yang lemah. Membuat UUID v4 dengan Math.random() merusak keunikannya. Gunakan generator yang aman secara kriptografis.

Membuat UUID dalam kode

// JavaScript (browser dan Node.js)
crypto.randomUUID();                 // v4

# Python
import uuid
uuid.uuid4()
uuid.uuid7()                         # Python 3.14+

-- PostgreSQL
SELECT gen_random_uuid();            -- v4 (PostgreSQL 13+)
SELECT uuidv7();                     -- PostgreSQL 18+

// Java
java.util.UUID.randomUUID();

// C# / .NET
Guid.NewGuid();                      // v4
Guid.CreateVersion7();               // .NET 9+

# Shell (Linux, macOS)
uuidgen
Tips: Perlu timestamp dari UUID v7? 12 digit heksadesimal pertama (tanpa tanda hubung) adalah waktu Unix dalam milidetik. Ubah dari heksadesimal ke desimal, lalu tempelkan hasilnya ke konverter Unix timestamp.

Pertanyaan yang sering diajukan

Apakah dua UUID bisa sama?

Secara teori bisa; dalam praktiknya tidak. Dengan 122 bit acak, jumlah kemungkinan nilai v4 begitu besar sehingga Anda harus membuat miliaran UUID setiap detik selama puluhan tahun sebelum satu duplikat saja mungkin muncul. Bentrokan di sistem nyata hampir selalu berasal dari generator angka acak yang rusak atau data hasil salinan, bukan dari kebetulan.

Apa bedanya UUID dan GUID?

Dalam praktiknya tidak ada. GUID adalah istilah yang dipakai dalam teknologi Microsoft; format dan ukurannya sama.

Sebaiknya pakai v4 atau v7?

Gunakan v7 untuk primary key database dan apa pun yang ingin Anda urutkan menurut waktu pembuatan. Gunakan v4 jika ID tidak boleh mengungkap apa pun, misalnya pengenal yang terlihat di URL publik.

Apakah nil UUID valid?

Ya. 00000000-0000-0000-0000-000000000000 adalah nil UUID khusus, dan RFC 9562 juga mendefinisikan max UUID yang seluruhnya berisi digit f. Keduanya sering dipakai sebagai placeholder.

Diperbarui

Tersalin ke clipboard