Generator UUID / GUID

Buat UUID dalam v1, v4, atau v5 — massal, berformat, dengan awalan/akhiran opsional.

Referensi Versi


v4 — Acak

UUID versi 4 dihasilkan sepenuhnya dari byte acak (atau pseudo-acak). 122 dari 128 bit bersifat acak; 6 bit sisanya mengkodekan versi (4) dan varian. Karena tidak membawa informasi terstruktur, UUID v4 adalah pilihan paling sederhana: tidak memerlukan status bersama, jam jaringan, atau koordinasi namespace. Probabilitas menghasilkan duplikat sangat rendah. Gunakan v4 sebagai default untuk kunci primer basis data, token sesi, dan konteks apa pun yang memerlukan keunikan tetapi tidak memerlukan urutan waktu.

Wikipedia — UUID Version 4 (random)

v1 — Berbasis Waktu

UUID versi 1 menyematkan timestamp 60-bit (interval 100 nanodetik sejak 15 Oktober 1582, tanggal reformasi kalender Gregorian), urutan clock 14-bit, dan pengenal node 48-bit (secara historis alamat MAC mesin pembuat). Karena timestamp adalah komponen terpenting, UUID v1 diurutkan secara kronologis saat dibandingkan secara leksikografis — properti yang berguna untuk indeks database berkluster. Kelemahannya adalah privasi: UUID v1 mengekspos alamat MAC mesin dan waktu pembuatan yang tepat.

Wikipedia — UUID Version 1 (time-based)

v5 — Namespace + Nama (SHA-1)

UUID versi 5 bersifat deterministik: dengan namespace UUID yang sama dan string nama yang sama, outputnya selalu identik. Algoritma menggabungkan byte namespace dan nama yang dikodekan UTF-8, menghasilkan hash dengan SHA-1, lalu melipat digest 160-bit menjadi 128 bit. Ini membuat v5 ideal untuk menghasilkan pengenal yang stabil dan dapat direproduksi. v3 menggunakan MD5; v5 lebih disukai karena SHA-1 menghasilkan lebih sedikit tabrakan.

Wikipedia — UUID Version 5 (name-based)