Apa itu UUID? Penjelasan Lengkap tentang Pengidentifikasi Unik Universal
Jawaban Cepat
UUID adalah pengenal 128-bit yang direpresentasikan sebagai 36 karakter (32 digit hex ditambah 4 tanda hubung). UUID praktis unik tanpa koordinasi — kemungkinan tabrakan dapat diabaikan. UUID v4 (acak) adalah versi yang paling umum. Gunakan Generator UUID gratis kami untuk membuat UUID di browser Anda.
Perkenalan
UUID (Pengidentifikasi Unik Universal), juga disebut GUID (Pengidentifikasi Unik Global) dalam terminologi Microsoft, adalah pengidentifikasi 128-bit yang secara praktis dijamin unik tanpa koordinasi pusat. UUID ditentukan oleh RFC 4122 dan banyak digunakan sebagai kunci utama basis data, ID permintaan, token sesi, dan pengidentifikasi sistem terdistribusi. Versi yang paling umum adalah UUID v4, yang menggunakan bit acak. UUID direpresentasikan sebagai 32 digit hex dalam 5 kelompok yang dipisahkan oleh tanda hubung: 8-4-4-4-12 (misalnya, 550e8400-e29b-41d4-a716-446655440000).
Langkah demi Langkah
-
Pahami struktur UUID
UUID berukuran 128 bit, ditampilkan sebagai 32 digit heksadesimal dalam 5 grup: 8-4-4-4-12, dipisahkan dengan tanda hubung (misalnya, 550e8400-e29b-41d4-a716-446655440000). Digit ke-13 menunjukkan versi (4 untuk v4), dan digit ke-17 menunjukkan varian.
-
Pelajari versi UUID
v1: berbasis waktu (stempel waktu + alamat MAC) — diurutkan berdasarkan waktu tetapi membocorkan identitas. v3: berbasis nama dengan hashing MD5. v4: acak — paling umum, tidak ada masalah privasi. v5: berbasis nama dengan hashing SHA-1. v6 dan v7: diurutkan berdasarkan waktu dengan peningkatan privasi dibandingkan v1.
-
Pahami kemungkinan tabrakan
UUID v4 memiliki 2^122 kemungkinan nilai. Kemungkinan terjadinya tabrakan di antara 103 triliun UUID adalah 50%. Untuk penggunaan praktis (jutaan ID), kemungkinan tabrakan secara efektif adalah nol — Anda dapat membuat UUID secara mandiri tanpa koordinasi.
-
Gunakan UUID dengan tepat
Gunakan v4 untuk hampir semua kasus penggunaan (ID database, ID permintaan, token sesi). Gunakan v7 jika Anda memerlukan ID yang diurutkan berdasarkan waktu untuk lokalitas database. Hindari v1 dalam konteks yang sensitif terhadap keamanan — ini menyematkan stempel waktu dan alamat MAC.
Contoh
UUID v4 (acak)
Masukan: Dihasilkan dengan crypto.getRandomValues
Keluaran: 550e8400-e29b-41d4-a716-446655440000
UUID v1 (berbasis waktu)
Masukan: Stempel waktu + alamat MAC
Keluaran: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1
Nihil __TETAP_15__
Masukan: All zeros
Keluaran: 00000000-0000-0000-0000-000000000000
Masalah Umum
- Menggunakan Math.random() untuk UUID —tidak aman secara kriptografis. Gunakan crypto.getRandomValues() atau crypto.randomUUID() di browser.
- Menyimpan UUID sebagai string —string UUID berukuran 36 byte; disimpan sebagai tipe UUID (16 byte) lebih efisien. Gunakan tipe UUID asli dalam database jika tersedia.
- Menggunakan v1 dalam konteks sensitif terhadap keamanan —v1 menyematkan stempel waktu dan alamat MAC, yang dapat membocorkan informasi tentang kapan dan di mana informasi tersebut dibuat. Gunakan v4 untuk anonimitas.
- Dengan asumsi UUID benar-benar unik — mereka secara praktis unik (kemungkinan tabrakan dapat diabaikan), namun tidak dijamin unik secara matematis.
Kiat
- Gunakan UUID v4 untuk hampir semua kasus penggunaan — acak, tidak memiliki masalah privasi, dan didukung oleh semua database modern.
- Gunakan crypto.randomUUID() di browser modern untuk generator v4 bawaan tanpa perpustakaan.
- Simpan UUID sebagai tipe UUID/GUID di database (16 byte) dan bukan string (36 byte) untuk penyimpanan dan kinerja indeks yang lebih baik.
- Gunakan Generator UUID kami untuk membuat UUID secara instan di browser Anda —tanpa registrasi, sepenuhnya pribadi.