8 karakter dari 62 kemungkinan alfanumerik per posisi. Dibuat di browser Anda.
String alfanumerik acak mengambil setiap karakter secara independen dari kumpulan 62 kemungkinan: 26 huruf besar, 26 huruf kecil, dan 10 digit. Setiap posisi mengandung log2(62) ≈ 5,95 bit entropi. String 32 karakter karenanya mengandung sekitar 190 bit keacakan, menempatkannya di luar jangkauan pencarian brute-force mana pun. Sebagai konteks, 128 bit adalah standar saat ini untuk kunci enkripsi simetris yang melindungi informasi rahasia.
Perbedaan dari kata sandi itu penting. Kata sandi membutuhkan karakter khusus untuk memenuhi persyaratan kompleksitas yang diberlakukan oleh sistem autentikasi. String acak melayani tujuan yang berbeda: keunikan tanpa karakter khusus. String alfanumerik saja bekerja dengan bersih di URL, nama file, pengenal database, token API, parameter query, dan variabel lingkungan. Tanpa escaping. Tanpa encoding. Tanpa kasus khusus di mana ampersand yang salah merusak parser.
Properti keamanan yang paling relevan untuk string acak adalah ketahanan tabrakan: berapa banyak string yang bisa Anda hasilkan sebelum dua string kebetulan cocok? Jawabannya berasal dari paradoks ulang tahun, sebuah hasil dalam teori probabilitas yang dinamai dari fakta mengejutkan bahwa dalam kelompok yang hanya terdiri dari 23 orang, ada peluang 50% bahwa dua orang memiliki tanggal lahir yang sama. Untuk string acak, ambang tabrakan 50% terjadi pada kira-kira akar kuadrat dari total ruang kemungkinan.
String alfanumerik 32 karakter memiliki 6232 ≈ 2190 kemungkinan nilai. Birthday bound-nya adalah 295 ≈ 4 × 1028 string. Anda perlu menghasilkan empat puluh miliar miliar miliar string sebelum mencapai peluang 50% adanya satu duplikat. Dengan satu juta string per detik, itu memakan waktu lebih dari 1015 tahun. Untuk aplikasi praktis apa pun, tabrakan secara matematis mustahil dalam masa pakai sistem.
UUID versi 4 (/uuid) menghasilkan 122 bit keacakan dalam format hex standar 8-4-4-4-12. String alfanumerik 22 karakter dari generator ini menyediakan sekitar 131 bit keacakan dalam representasi yang lebih pendek dan lebih ringkas. Keduanya melayani tujuan fundamental yang sama: menghasilkan pengenal unik tanpa koordinasi antar sistem.
Pertimbangannya bersifat konkret. UUID diakui secara universal, divalidasi oleh pustaka standar, dan diurutkan secara kronologis oleh beberapa sistem database (UUIDv7). String alfanumerik acak lebih pendek, lebih padat, dan bebas tanda hubung. UUID menempati 36 karakter termasuk tanda hubung; string acak yang mengemas entropi setara hanya membutuhkan 22 karakter. Pilih UUID saat berinteroperasi dengan sistem yang mengharapkannya. Pilih string acak ketika Anda mengendalikan kedua ujung dan menginginkan kepadatan informasi maksimal.
String alfanumerik acak muncul di seluruh pengembangan perangkat lunak. Token API mengautentikasi layanan tanpa kata sandi. Pengenal sesi melacak koneksi browser. Nilai nonce mencegah serangan replay dalam alur OAuth. Nama file sementara menghindari konflik dalam pemrosesan paralel. Data uji mengisi database dengan pengenal yang terlihat realistis. Slug pemendek URL memampatkan alamat panjang menjadi tautan yang bisa dibagikan. Setiap kasus penggunaan mendapat manfaat dari properti yang sama: ketidakterdugaan kriptografi tanpa karakter khusus.
Pembuatan string acak mengajarkan kombinatorika melalui penerapan langsung. Minta siswa menghitung total kemungkinan string untuk panjang yang berbeda: 628 ≈ 2 × 1014 versus 6216 ≈ 5 × 1028. Menggandakan panjang mengkuadratkan ruang kemungkinan. Kemudian perkenalkan paradoks ulang tahun: kunjungi /generate/8 dan diskusikan pada skala berapa tabrakan menjadi mungkin untuk string pendek versus /generate/32 di mana tabrakan secara efektif mustahil. Panel tabrakan menampilkan birthday bound secara real time, menjadikan kombinatorika abstrak menjadi nyata.
Setiap string yang dihasilkan di halaman ini hanya ada di dalam browser Anda. Server mengirimkan alat. Perangkat Anda membuat output menggunakan crypto.getRandomValues(), Web Cryptography API yang sama yang mengamankan perbankan online. String tersebut berada di memori browser sampai Anda menyalinnya. Menutup tab menghancurkannya. Server tidak memiliki pengetahuan sama sekali tentang string apa pun yang pernah dihasilkan halaman ini.
Ketik panjang apa pun langsung di bilah alamat:
Kirim alat ini atau tantang teman untuk membandingkan string acak mereka dengan milik Anda.
Inspirasi Harian
Karya terpilih juri dari A' Design Award, disajikan segar setiap pagi.