ByteCompress

Generator UUID

Hasilkan UUID Versi 4 yang acak secara kriptografis dengan cepat di browser Anda. Generasi tunggal atau massal menggunakan Web Crypto API sesuai RFC 9562.

51
FreeClient-sideNo signup

UUID v4 memiliki 122 bit acak, memberikan sekitar 5.3×1036 nilai yang mungkin. Untuk memiliki probabilitas 50% terjadinya tabrakan tunggal, Anda perlu menghasilkan 2.71×1018 UUID. Pada satu miliar per detik, itu memakan waktu 85 tahun. UUID v4 distandarisasi dalam RFC 9562 (pengganti RFC 4122) dan merupakan format pengidentifikasi yang paling banyak digunakan dalam sistem terdistribusi modern. Generator ini menggunakan API crypto.randomUUID() browser, didukung oleh CSPRNG sistem operasi. Hasilkan satu UUID atau ratusan sekaligus - tanpa server, tanpa pendaftaran.

Cara Menghasilkan UUID

  1. Klik Generate untuk membuat satu UUID dengan cepat.
  2. Masukkan jumlah (misalnya, 10, 100, 1000) dan klik Generate Bulk untuk beberapa UUID sekaligus.
  3. Klik UUID mana pun dalam daftar untuk menyalinnya secara individu, atau gunakan Copy All untuk menyalin seluruh daftar.
  4. Pilih format output huruf besar atau kecil sesuai kebutuhan sistem target Anda.
  5. Gunakan Download untuk mengekspor sebagai file teks.

UUID v4 Dijelaskan

Struktur dan Format

UUID adalah 32 karakter heksadesimal dalam pola 8-4-4-4-12: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. Angka 4 di grup ketiga adalah tetap (versi 4). 1-2 bit pertama dari grup keempat tetap sebagai 10 dalam biner (varian RFC 4122). Sisa 122 bit dihasilkan secara acak. UUID v4 muncul di setiap penyedia cloud utama, sistem basis data, dan kerangka kerja web sebagai format pengidentifikasi default.

Peluang Tabrakan

Dengan 2122 nilai yang mungkin (~5.3×1036), menghasilkan UUID v4 duplikat dari CSPRNG yang tepat adalah secara statistik tidak signifikan untuk aplikasi dunia nyata. Tabrakan UUID v4 dianggap tidak mungkin untuk tujuan praktis.

Contoh

UUID v4 yang Dihasilkan

f47ac10b-58cc-4372-a567-0e02b2c3d479

UUID yang Sama dalam Representasi Berbeda

Dengan tanda hubung:  f47ac10b-58cc-4372-a567-0e02b2c3d479
Huruf besar:       F47AC10B-58CC-4372-A567-0E02B2C3D479
Tanpa tanda hubung: f47ac10b58cc4372a5670e02b2c3d479
Format URN:      urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479

Perbandingan Versi UUID

  • v1 - Berbasis waktu, menggabungkan alamat MAC dari mesin yang menghasilkan. Mengekspos informasi perangkat keras dan memiliki pola berurutan. Hindari untuk pengidentifikasi yang sensitif terhadap keamanan.
  • v3 / v5 - Berbasis nama dan deterministik: namespace + nama input yang sama selalu menghasilkan UUID yang sama. Berguna untuk pengidentifikasi yang dapat direproduksi.
  • v4 - Sepenuhnya acak (122 bit). Tidak ada informasi yang disematkan, tidak ada pola berurutan. Tipe yang paling banyak digunakan untuk pengidentifikasi yang dihasilkan aplikasi.
  • v7 - UUID acak yang diurutkan berdasarkan waktu (RFC 9562). 48 bit pertama adalah timestamp Unix dalam milidetik, membuat UUID v7 dapat diurutkan berdasarkan waktu pembuatan. Lebih baik untuk kinerja indeks B-tree basis data dibandingkan v4.

Kasus Penggunaan Umum

  • Kunci utama di PostgreSQL (uuid type), MySQL (VARCHAR(36)), dan MongoDB
  • ID sistem terdistribusi di mana beberapa layanan membuat catatan secara independen tanpa urutan pusat
  • Pengidentifikasi sumber API yang diekspos dalam URL publik (lebih aman daripada bilangan bulat berurutan yang memungkinkan serangan enumerasi)
  • Nama file untuk aset yang diunggah untuk mencegah tabrakan
  • Kunci idempotensi untuk permintaan API untuk mencegah pemrosesan duplikat saat mencoba ulang

Untuk menghasilkan kata sandi acak yang aman (daripada pengidentifikasi), gunakan Password Generator. Untuk pengidentifikasi berbasis waktu yang juga dapat diurutkan dalam basis data, cari dukungan UUID v7 di driver basis data atau ORM Anda.

Pertanyaan Umum

Seberapa unik UUID Versi 4 dalam praktiknya?

UUID v4 memiliki 122 bit acak, memberikan sekitar 5.3×1036 nilai yang mungkin. Untuk memiliki peluang 50% terjadinya tabrakan tunggal, Anda perlu menghasilkan 2.71×1018 UUID - pada satu miliar per detik, itu akan memakan waktu sekitar 85 tahun. Untuk semua aplikasi praktis, tabrakan UUID v4 dianggap tidak mungkin.

Apakah UUID yang dihasilkan di sini aman secara kriptografis?

Ya. Alat ini menggunakan crypto.randomUUID() (atau crypto.getRandomValues() sebagai cadangan), keduanya didukung oleh CSPRNG sistem operasi. UUID yang dihasilkan cocok digunakan sebagai token keamanan, pengidentifikasi sesi, dan konteks sensitif keamanan lainnya.

Haruskah saya menggunakan UUID atau bilangan bulat auto-increment sebagai kunci utama basis data?

Keduanya memiliki trade-off. UUID v4 bekerja dengan baik dalam sistem terdistribusi di mana beberapa node menghasilkan ID secara independen, membuat ID tidak dapat diprediksi dalam URL publik (mencegah serangan enumerasi), dan menyederhanakan penggabungan basis data. Bilangan bulat auto-increment lebih sederhana, lebih kecil (4-8 byte vs 16 byte), dan memiliki kinerja indeks B-tree yang lebih baik untuk penyisipan berurutan. UUID v7 menawarkan jalan tengah: UUID acak yang juga dapat diurutkan berdasarkan waktu.

Format apa yang dimiliki UUID?

UUID adalah 32 karakter heksadesimal kecil yang dikelompokkan dengan tanda hubung dalam pola 8-4-4-4-12: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. Total panjang string dengan tanda hubung adalah 36 karakter. PostgreSQL menyimpan UUID sebagai tipe biner 16-byte asli; MySQL dan SQLite biasanya menyimpan string 36 karakter.

Bisakah saya menghasilkan UUID secara offline?

Ya. Setelah halaman ini dimuat, generasi UUID berjalan sepenuhnya menggunakan JavaScript lokal dan API crypto bawaan browser. Tidak ada permintaan jaringan yang dibuat selama generasi. Alat ini berfungsi secara offline setelah pemuatan halaman awal.