RevealTheme logo

Generator UUID

Hasilkan UUID v4 (universally unique identifier acak). Setiap klik menghasilkan yang baru.

Cara menggunakan alat ini

  1. 1

    Click the Generate UUID button to produce a fresh random v4 UUID.

  2. 2

    Read the 36-character identifier shown in the canonical 8-4-4-4-12 format below the button.

  3. 3

    Click Copy to put the UUID on your clipboard for pasting into code, a database, or a config file.

  4. 4

    Click Generate UUID again whenever you need another one — every click replaces the value with a brand-new random UUID.

Apa itu UUID dan mengapa perangkat lunak menggunakannya?

UUID (Universally Unique Identifier, kadang disebut GUID dalam konteks Microsoft) adalah nilai 128-bit yang digunakan untuk mengidentifikasi entitas tanpa memerlukan koordinasi antarsistem. Ide UUID adalah bahwa dua program berbeda, yang berjalan di dua mesin berbeda dan tidak saling mengenal, dapat menghasilkan UUID dan dengan yakin berasumsi bahwa keduanya tidak akan pernah bertabrakan. Properti tersebut memungkinkan desain sistem terdistribusi: Anda dapat membiarkan layanan mana pun mencetak identifier secara lokal tanpa penghitung terpusat, menggabungkan basis data tanpa menomori ulang baris, dan membuat identifier terlebih dahulu di klien sebelum server bahkan melihat permintaannya. UUID memiliki lima versi kanonis yang didefinisikan oleh RFC 4122: v1 (berbasis waktu + alamat MAC, membocorkan waktu pembuatan dan identitas mesin), v3 (hash MD5 dari namespace + nama), v4 (acak, yang paling umum), v5 (hash SHA-1 dari namespace + nama). RFC 9562 menambahkan v6 (terurut menurut waktu, seperti v1 tetapi tanpa membocorkan MAC) dan v7 (Unix timestamp + acak, dirancang khusus untuk primary key basis data karena terurut secara kronologis). Alat ini menghasilkan UUID v4 melalui crypto.randomUUID(), yang memanfaatkan keacakan yang kuat secara kriptografis dari sistem operasi browser yang mendasarinya, sumber yang sama dengan asal kunci TLS. Outputnya identik byte demi byte dengan uuid.uuid4() Python, crypto.randomUUID() Node, dan google/uuid.NewRandom() Go.

Kasus penggunaan umum

  • Kunci utama basis data — gantikan integer yang bertambah otomatis saat Anda perlu menggabungkan basis data atau menghasilkan ID di sisi klien.

  • Pengidentifikasi sesi di cookie — cukup panjang sehingga menebak ID sesi yang valid secara brute-force tidak layak secara komputasi.

  • Kunci idempotensi untuk permintaan API — ulangi permintaan dengan aman; server melakukan deduplikasi berdasarkan UUID.

  • Pengidentifikasi unggahan file — beri nama file yang diunggah dengan UUID untuk mencegah tabrakan path dan menghindari pengungkapan nama file asli.

  • ID pelacakan terdistribusi — setiap permintaan mendapat UUID, disebarkan melalui layanan untuk korelasi log.

  • Pengidentifikasi fixture uji — keacakan yang dapat diprediksi untuk data uji tanpa mengoordinasikan ID antar kasus uji.

Pertanyaan yang sering diajukan

Apa arti v4?
Versi 4: dihasilkan dari 122 bit keacakan ditambah 6 bit tetap untuk versi/varian. Versi lain: v1 berbasis timestamp + MAC (jangan digunakan; membocorkan identitas mesin dan waktu), v3/v5 adalah hash deterministik dari namespace + nama (berguna untuk identifier turunan yang stabil), v7 acak dengan awalan timestamp (sangat baik untuk basis data karena terurut secara kronologis). Untuk sebagian besar kasus, v4 adalah pilihan default yang tepat.
Seberapa unik UUID sebenarnya?
UUID v4 memiliki 122 bit keacakan efektif: 5,3×10^36 nilai yang mungkin. Anda harus menghasilkan 2,71 kuintiliun UUID sebelum mencapai peluang tabrakan 50%. Sebagai gambaran, jika Anda menghasilkan satu miliar UUID per detik, Anda membutuhkan 85 tahun untuk mencapai ambang itu. Tabrakan praktis tidak terjadi dengan generator angka acak yang baik.
Haruskah saya menggunakan v4 atau v7 untuk primary key basis data?
v7 lebih baik untuk basis data. UUID v4 bersifat acak, yang berarti baris baru tersebar secara acak di seluruh indeks B-tree, menyebabkan pembengkakan indeks dan penyisipan yang lambat dalam skala besar. v7 menambahkan timestamp di depan, sehingga UUID baru selalu terurut setelah yang lama, menjaga pola penyisipan tetap berurutan. PostgreSQL, MySQL, dan SQL Server mendapat manfaat dari v7. Jika pustaka Anda belum mendukung v7, ULID adalah alternatif populer dengan properti yang sama.
Apakah aman menggunakan crypto.randomUUID()?
Ya. Ia ditetapkan dalam WHATWG dan diimplementasikan di semua browser modern melalui generator angka acak kriptografis sistem operasi (sumber yang sama dengan asal kunci TLS). Outputnya tidak dapat diprediksi dan terdistribusi secara merata di seluruh ruang UUID v4.
Apa perbedaan antara UUID dan GUID?
Keduanya identik secara fungsional: GUID adalah istilah Microsoft untuk konsep yang sama. Format byte berbeda pada beberapa API Microsoft (Guid.ToByteArray() .NET menggunakan urutan byte campuran pada tiga field pertama), jadi ketika interoperabilitas penting, perhatikan urutan byte. Format string kanonis (8-4-4-4-12) identik.
Bisakah saya memendekkan UUID untuk digunakan dalam URL?
Ya: encode 128 bit tersebut ke Base62 atau Base64 alih-alih format heksadesimal kanonis. Base62 memberi Anda 22 karakter; Base64 menghasilkan 22 dengan padding atau 22 dalam varian yang aman untuk URL. Beberapa pustaka juga menggunakan format 'UUID pendek'. Bit yang mendasarinya tidak berubah; hanya encoding tampilannya yang berbeda.
Mengapa UUID saya dimulai dengan karakter yang sama dengan UUID lain?
Itu kebetulan: UUID v4 bersifat acak. Dengan total 36 karakter heksadesimal dan hanya 22 karakter heksadesimal acak (4 dicadangkan untuk versi/varian dan 4 berupa tanda hubung), beberapa kecocokan awalan tidak terhindarkan ketika Anda menghasilkan banyak UUID. UUID lengkapnya tetap unik meskipun awalannya cocok.

Alat terkait