tooly

Pembuat UUID

Buat pengenal unik universal: UUID v4 acak atau UUID v7 urut waktu (RFC 9562) yang terurut sesuai waktu pembuatan — ideal untuk kunci basis data. Dibuat lokal dengan keacakan kriptografis browser.

Semuanya berjalan di browser Anda — tidak ada yang dikirim

Cara menggunakan

  1. 1

    Pilih v4 atau v7 dan jumlah yang dibutuhkan.

  2. 2

    Klik Buat baru untuk batch baru.

  3. 3

    Salin daftarnya.

Di mana UUID dipakai

UUID (universally unique identifier, di Windows disebut juga GUID) adalah nilai 128-bit yang ditulis sebagai 32 digit heksadesimal dalam lima grup: 8-4-4-4-12, misalnya 3f1c2b7e-9a4d-4c1e-8b2f-6d0e5a7c9b13. Intinya, sistem mana pun bisa membuatnya sendiri, tanpa meminta penghitung pusat, dan tetap yakin ID itu tidak akan pernah bentrok dengan ID yang dibuat di tempat lain.

Sifat itu berguna di banyak tempat:

  • Primary key di database, terutama jika record dibuat di beberapa server atau secara offline di perangkat klien lalu disinkronkan kemudian.
  • Request ID dan correlation ID yang mengikuti satu operasi melintasi log banyak layanan.
  • Nama file untuk unggahan, agar dua pengguna yang mengunggah photo.jpg tidak saling menimpa.
  • Idempotency key untuk API pembayaran dan pesanan.
  • Fixture tes dan seed data yang butuh ID realistis.

Versi 4 dan versi 7

Alat ini menawarkan dua versi yang relevan untuk pekerjaan baru saat ini. Keduanya punya format dan panjang yang sama; bedanya ada pada isi bit-bitnya.

UUID v4 (acak)

Selain 6 bit tetap yang menandai versi dan varian, seluruh 122 bit lainnya acak. Anda bisa mengenali v4 dari angka 4 di awal grup ketiga. Nilai ini berasal dari crypto.randomUUID() milik browser, yang mengambil dari sumber acak kriptografis aman milik sistem operasi.

Gunakan v4 jika ID tidak boleh mengungkap apa pun: token undangan di URL, ID sumber daya publik, apa pun di mana mengetahui satu ID tidak boleh membantu menebak ID lain atau kapan ID itu dibuat.

UUID v7 (urut waktu)

Distandarkan dalam RFC 9562 pada 2024, v7 menaruh timestamp Unix 48-bit dalam milidetik di depan dan mengisi 74 bit sisanya dengan data acak. Grup ketiga diawali 7. Karena timestamp berada di depan, nilai v7 terurut sesuai waktu pembuatan sebagai string biasa maupun byte.

Ini penting untuk database. Indeks B-tree menyimpan key secara berurutan, dan key v4 yang acak jatuh di halaman acak, menyebabkan page split dan pemakaian cache yang buruk saat tabel tumbuh hingga jutaan baris. Key yang urut waktu ditambahkan di dekat ujung indeks, mirip integer auto-increment, sambil tetap mempertahankan sifat "bisa dibuat di mana saja". Untuk tabel baru di PostgreSQL, MySQL, atau SQL Server, v7 biasanya primary key yang lebih baik.

Dua catatan: timestamp-nya bisa dibaca, jadi v7 mengungkap kapan record dibuat, sampai ke milidetik. Selain itu, generator ini tidak menambahkan penghitung di bawah milidetik, jadi ID yang dibuat dalam milidetik yang sama, seperti yang terjadi dalam satu batch, diurutkan berdasarkan bagian acaknya, bukan urutan pembuatannya.

Seberapa kecil kemungkinan duplikat

Dengan 122 bit acak, ada sekitar 5,3 × 10^36 kemungkinan nilai v4. Menurut birthday bound, Anda perlu membuat sekitar 2,7 × 10^18 nilai untuk mencapai peluang 50% terjadinya satu tabrakan. Dengan kecepatan satu miliar per detik, itu butuh lebih dari 80 tahun.

Untuk v7, bagian acaknya 74 bit, tetapi hanya perlu unik di antara ID yang dibuat dalam milidetik yang sama. Bahkan dengan sejuta ID per milidetik, peluang bentrok tetap dapat diabaikan.

Dalam praktiknya, duplikat berasal dari bug, bukan matematika: contoh ID yang di-hardcode lalu tersalin ke produksi, generator acak yang diberi seed atau tidak kriptografis, atau mesin virtual hasil kloning yang mengulang state. Membuat UUID di browser dengan keacakan aman milik sistem menghindari dua yang terakhir.

Detail format dan penyimpanan

  • Huruf besar-kecil. RFC 9562 menyatakan UUID ditulis dengan huruf kecil dan dibandingkan tanpa peka huruf besar-kecil. Opsi Huruf besar tersedia untuk sistem dan dokumentasi yang memakai gaya GUID Windows.
  • Kurung kurawal dan tanda hubung. Sebagian alat Microsoft menampilkan GUID dalam {curly braces}. Hapus kurung itu, atau tanda hubungnya, hanya jika sistem tujuan mengharapkan bentuk tersebut.
  • Penyimpanan. Simpan UUID dalam tipe native (uuid di PostgreSQL, BINARY(16) di MySQL), bukan CHAR(36). Bentuk biner memakan 16 byte, bukan 36, dan dibandingkan lebih cepat.
  • Ukuran batch. Hingga 500 sekaligus, satu per baris, siap ditempel ke script SQL atau spreadsheet. Mengklik Buat baru mengganti seluruh daftar.

UUID adalah identifier, bukan rahasia. v4 sulit ditebak, tetapi jika ia memberi akses ke sesuatu, perlakukan itu sebagai tautan praktis, bukan autentikasi. Untuk kredensial, gunakan Pembuat password. Untuk membaca waktu pembuatan dari v7, ambil 12 digit heksadesimal pertamanya, ubah ke desimal, dan tempel angkanya ke Konverter timestamp Unix.

FAQ

Apa bedanya v4 dan v7?

v4 sepenuhnya acak. v7 diawali stempel waktu milidetik, sehingga ID terurut kronologis dan lebih baik diindeks di basis data.

Apakah UUID ini benar-benar unik?

Dengan 122 bit acak, peluang tabrakan bisa diabaikan — Anda harus membuat miliaran per detik selama berabad-abad.

Apakah dibuat di server?

Tidak. Berasal dari crypto.getRandomValues di browser Anda dan tidak pernah dikirim.

Bisa membuat banyak sekaligus?

Hingga 500 per klik.

Alat terkait