UUID Generator
Hasilkan UUID RFC 4122 (v4 acak atau v7 time-sortable). Bulk hingga 100. Kripto-aman.
Dibuat oleh JXXR1 · ♥ Jadi sponsor · ☕ Belikan saya kopi
Untuk apa ini?
UUID (atau GUID) adalah identifier 128-bit — ditulis sebagai 32 digit hex dalam 5 grup seperti 550e8400-e29b-41d4-a716-446655440000. UUID bebas tabrakan antar sistem tanpa koordinasi: proses mana pun di mana pun bisa men-generate satu, dan probabilitas dua di antaranya bertabrakan praktis nol. Berguna saat kamu butuh ID sebelum bicara ke database, ingin mencegah jumlah baris bocor, atau saat ID perlu di-generate di sisi client lalu disinkronkan. Tool ini menghasilkan UUID yang sesuai RFC 4122 / RFC 9562 dalam bentuk v4 (random) atau v7 (time-sortable), di-generate di browser kamu dengan randomness yang aman secara kriptografis.
Kapan digunakan
- Primary key untuk sistem terdistribusi di mana kamu tidak ingin round-trip ke database hanya untuk dapat ID.
- Idempotency key untuk API request (stripe, payment provider, queue message).
- Identifier file upload, session token, correlation ID di log.
- Di mana pun kamu seharusnya meng-expose auto-increment ID dan membocorkan berapa banyak record yang kamu punya.
- Data testing — seed seratus record dengan identifier realistis dalam satu klik.
v4 vs v7 — mana yang dipakai?
- v4 (random) — 122 bit randomness, tanpa creation time tertanam. Pakai saat kamu ingin korelasi nol antara ID dan urutan pembuatan, atau saat ID akan tinggal di hash-map / index non-clustered di mana sorting tidak penting.
- v7 (time-sortable) — prefix timestamp Unix-ms 48-bit + ekor random. Pakai ini secara default untuk primary key database baru. Prefix timestamp memberi locality pada B-tree index (insert terbaru masuk ke page yang sama, perilaku cache jauh lebih baik dari v4) dan ID terurut kurang lebih kronologis. Didefinisikan di RFC 9562 (Mei 2024) — menggantikan ULID dan v1/v6 untuk sebagian besar use case.
Kesalahan umum
- UUID bukan secret. v4 punya 122 bit entropy dan tidak bisa ditebak, tapi format itu sendiri tidak meng-authorize apa-apa. Jangan pakai UUID sebagai session token atau password reset token kecuali kamu memperlakukannya seperti secret (HTTPS-only, time-limited, single-use).
- v7 membocorkan creation time. 48 bit pertama meng-encode milidetik saat di-generate. Bagus untuk ID internal; buruk jika kamu tidak ingin user tahu kapan record dibuat. Pakai v4 dalam kasus itu.
- Ukuran index penting. UUID itu 16 byte vs 8 byte untuk bigint — B-tree index kamu jadi lebih besar. Nilainya jelas untuk yang terdistribusi/tanpa koordinasi; sering tidak sepadan untuk aplikasi single-server di mana ID sekuensial sudah baik.
- v4 memfragmentasi index database. ID random menyebarkan write ke seluruh index, menyakiti page cache hit rate dan write throughput. Ini argumen orisinal untuk v7.
- Jangan pakai v1. Varian time-and-MAC lama membocorkan MAC address mesin yang men-generate. v7 adalah pengganti modern.
- Pakai randomness crypto-secure. Tool ini pakai
crypto.getRandomValues; jangan pernah bikin sendiri denganMath.random— tidak cukup random dan ID jadi bisa diprediksi.