Generator ULID dan Nano ID
Buat ULID (dengan opsi monotonik) atau Nano ID dengan alfabet dan panjang kustom secara massal, dekode timestamp ULID, dan cek risiko tabrakan.
Probabilitas tabrakan
- Ukuran alfabet
- —
- Entropi per ID
- —
- Kemungkinan ID
- —
- Jumlah ID untuk peluang duplikat 1%
- —
- Waktu hingga mencapai risiko 1% itu
- —
Dekode ULID
- Timestamp (UTC, ISO 8601)
- Tanggal dan waktu lokal
- Waktu Unix (ms)
- Bagian acak (80 bit, hex)
Cara membuat ULID atau Nano ID
- Di Jenis ID, pilih ULID (dapat diurutkan) atau Nano ID (pendek).
- Atur Jumlah (1 hingga 1.000). Sepuluh ID langsung dibuat begitu halaman dimuat.
- Untuk ULID, biarkan Monotonik (selalu naik) tercentang agar ID yang dibuat dalam milidetik yang sama tetap terurut, dan centang Huruf kecil jika sistem Anda lebih menyukainya.
- Untuk Nano ID, pilih Alfabet (atau Kustom… lalu ketik karakter Anda sendiri) dan Panjang.
- Klik Buat, lalu Salin daftarnya atau Unduh sebagai file .txt (satu ID per baris).
Untuk membaca tanggal yang tersembunyi di dalam ULID, tempel ULID di Dekode ULID atau klik Dekode ID pertama. Alat ini menampilkan timestamp dalam UTC (ISO 8601), dalam waktu lokal Anda, sebagai milidetik Unix, serta bagian acak 80 bit dalam hex.
Apa itu ULID?
ULID (Universally Unique Lexicographically Sortable Identifier) adalah identifier 128 bit yang ditulis sebagai 26 karakter Crockford Base32, misalnya 01ARZ3NDEKTSV4RRFFQ69G5FAV. 10 karakter pertama mengenkode timestamp 48 bit dalam milidetik (cukup hingga tahun 10889); 16 karakter terakhir adalah 80 bit acak. Crockford Base32 tidak memakai I, L, O, dan U agar tidak membingungkan, dan dekodenya tidak membedakan huruf besar/kecil.
Karena waktunya ada di depan, ULID terurut secara alfabetis sesuai urutan pembuatannya. Hal ini menjadikannya primary key yang baik: baris baru ditambahkan di ujung indeks B-tree alih-alih tersebar seperti UUID acak, dan Anda bisa mengurutkan berdasarkan ID alih-alih kolom tanggal terpisah.
Mode monotonik. Dalam satu milidetik, ULID acak akan terurut secara acak. Dengan opsi monotonik, alat ini mengikuti spesifikasi ULID: jika beberapa ID dibuat dalam milidetik yang sama, timestamp-nya dipertahankan dan bagian acak sebelumnya ditambah 1. Jika jam mundur, timestamp terakhir dipertahankan, sehingga urutannya tidak pernah menurun.
Perlu diingat bahwa ULID mengungkap kapan ia dibuat. Jangan memakainya jika informasi tersebut sensitif.
Apa itu Nano ID?
Nano ID adalah identifier acak yang ringkas. Bawaannya 21 karakter dari alfabet aman URL berisi 64 karakter (A–Z a–z 0–9 _ -), yang menghasilkan 126 bit acak, setara dengan UUID v4 (122 bit) tetapi dengan karakter lebih sedikit. Anda bisa memilih heksadesimal, hanya angka, huruf kecil dan angka, alfanumerik, himpunan tanpa karakter yang mirip (tanpa 0/O, 1/l/I, 5/S…) untuk kode yang diketik orang, atau alfabet Anda sendiri berisi 2 hingga 256 karakter. Karakter ganda dalam alfabet kustom dihapus, karena akan membuat sebagian karakter lebih sering muncul.
Setiap karakter diambil dengan crypto.getRandomValues memakai rejection sampling, sehingga tidak ada bias modulo.
Probabilitas tabrakan
Panel Probabilitas tabrakan menerapkan batas paradoks ulang tahun. Dengan alfabet berukuran A dan panjang L, ada N = A^L kemungkinan ID. Setelah k ID, peluang munculnya setidaknya satu duplikat kira-kira 1 − e^(−k²/2N), sehingga risiko 1% tercapai setelah k ≈ √(2N · ln(1/0,99)) ID. Masukkan ID yang dibuat per jam untuk melihat berapa lama waktu yang dibutuhkan. Dengan pengaturan bawaan dan 1.000 ID per jam, risiko 1% baru tercapai setelah sekitar 149 miliar tahun; dengan 8 karakter heksadesimal, hanya diperlukan sekitar 9.300 ID.
Pertanyaan yang sering diajukan
ULID atau UUID?
Keduanya 128 bit. ULID lebih pendek untuk ditulis (26 karakter, bukan 36) dan terurut berdasarkan waktu. UUID versi 7 kini menawarkan pengurutan waktu yang sama dalam format UUID standar, yang sering disimpan secara native oleh database. Pilih UUID v7 jika stack Anda mendukungnya, dan ULID jika Anda menginginkan string yang ringkas dan mudah dibaca.
Apakah ULID dan Nano ID cukup aman untuk token?
Nano ID dengan alfabet dan panjang bawaan memiliki 126 bit acak dari generator kriptografis, cukup untuk tautan yang tidak bisa ditebak. ULID hanya punya 80 bit acak, dan dalam mode monotonik ID yang berurutan hanya berbeda satu, jadi jangan memakai ULID sebagai rahasia.
Bisakah saya memperpendek Nano ID?
Bisa, tetapi risiko tabrakan meningkat sangat cepat. Periksa nilai Jumlah ID untuk peluang duplikat 1% untuk panjang dan alfabet Anda sebelum mengandalkan ID yang pendek.
Mengapa decoder menolak ULID saya?
ULID harus terdiri dari tepat 26 karakter, hanya memakai karakter Crockford Base32, dan diawali 0 hingga 7 (karakter pertama yang lebih besar akan melebihi 128 bit).
Apakah ID disimpan atau dikirim ke mana pun?
Tidak. ID dibuat di browser Anda dan hilang saat Anda meninggalkan halaman.
Alat terkait
- UUID Generator UUID generator gratis untuk UUID versi 4 dan versi 7. Buat hingga 1.000 sekaligus, huruf kapital atau tanpa tanda hubung, lalu salin atau unduh .txt.
- Pembuat Kata Sandi Pembuat kata sandi gratis untuk password acak yang kuat sepanjang 4 sampai 128 karakter, dibuat di browser dengan RNG aman. Tidak disimpan atau dikirim.
- Konverter Unix Timestamp Konversi Unix timestamp dalam detik atau milidetik ke tanggal yang mudah dibaca dalam waktu lokal, UTC, dan ISO 8601, lalu ubah tanggal kembali ke epoch.