Random Kriptografi versus Pseudo‑Random untuk Sandi (Apa yang Sering Keliru Developer)
Oleh Redaksi Safe Local Tools
Kekuatan sandi hanya sekuat proses acak yang menghasilkan itu. Jika proses itu dapat diprediksi—bahkan secara statistik—penyerang menyusutkan ruang pencarian secara dramatis.
Developer rutin meminjam fungsi "acak" dari pustaka standar tanpa membaca jaminannya. Fungsi itu dioptimalkan untuk kecepatan simulasi dan reproduktibilitas—bukan ketidakterprediksian di bawah pengamatan penyerang.
Artikel ini membedakan pseudo‑random dengan keacakan aman kriptografi, menjelaskan anggaran entropi pada skala yang mudah dibaca manusia, serta mengapa Safe Local Tools menghasilkan sandi menggunakan pemrosesan lokal browser agar draf tidak meninggalkan mesin Anda selama eksperimen.

Definisi bahasa awam tanpa mengibuli
Generator bilangan pseudo‑acak (PRNG) memperluas state internal kecil melalui matematika deterministik. Jika state—atau kebocoran parsial—diketahui, keluaran masa depan menjadi dapat ditebak.
CSPRNG memperketat asumsi ketidakterprediksian di bawah serangan: keluaran harus secara komputasi tidak dapat dibedakan dari bit acak seragam meskipun penyerang mengamati keluaran sebelumnya, dalam batas kerasan kriptografi standar.
Bencana PRNG jarang dari bug yang "jelas bodoh"; mereka muncul ketika RNG statistik digunakan di dalam lapisan kriptografi—kadang tidak sengaja melalui dependensi transitif.
Mengapa Math.random (dan teman‑temannya) tidak aman untuk rahasia
Builtin seperti Math.random() memprioritaskan kecepatan dan float yang "cukup seragam" untuk permainan dan animasi—bukan ketahanan terhadap rekayasa balik ketika keluaran sebagian diketahui.
Meskipun string terlihat seperti karakter acak, space state PRNG bisa jauh lebih kecil daripada alfabet cetak setelah pemformatan.
// Pola TIDAK aman untuk rahasia (hanya ilustrasi):
const tokenBuruk = Math.random().toString(36).slice(2);Contoh pola yang lebih tepat di browser
Tarik byte mentah dari jalur CSPRNG yang diekspos browser lalu encode dengan bijak untuk charset sandi Anda.
const buf = new Uint8Array(16);
crypto.getRandomValues(buf);Pemodelan ancaman untuk sandi yang dihasilkan
Tanyakan apakah penyerang bisa menguji secara offline setelah kebocoran hash versus hanya menebak melalui formulir login dengan pembatasan tarif.
Apakah penyerang bisa mengorelasikan keluaran antar sesi?
Apakah sandi harus dihafal atau disimpan di pengelola?
Jawaban mengarahkan panjang, charset, dan kebijakan rotasi—randomness sendiri tidak memperbaiki logistik manusia.
Entropi: menghitung kemungkinan secara bertanggung jawab
Jika tiap simbol dipilih seragam dari alfabet ukuran A sepanjang panjang L, kombinasi berskala seperti A pangkat L—pertumbuhan eksponensial menjelaskan mengapa menambah karakter mengalahkan menukar font secara bergaya.
Sandi pilihan manusia mengelompok secara budaya; penyerang mengeksploitasi kamus dan substitusi (P@ssw0rd).
Sampling mesin yang benar‑benar seragam menolak kamus naif—hanya ketika generasi benar‑benar luas.
Encoding byte mentah ke charset cetak bisa menimbulkan bias modulo jika Anda memetakan dengan % panjangAlfabet secara naif—gunakan penolakan sampel atau helper pustaka untuk menghindari skew halus.
Kebijakan organisasi versus jurang kegunaan
Aturan kompleksitas ketat kadang menghasilkan pola dapat diprediksi (Summer2026!1). Generator acak menghindari beberapa jebakan tetapi menambah gesekan menghafal—pasangkan dengan pengelola sandi.
Garam dan hashing di server untuk kata sandi pengguna
Sandi pengguna yang disimpan harus melalui fungsi hashing lambat bermemori seperti Argon2id, bcrypt, atau scrypt—bukan perbandingan teks biasa.
Token sesi atau kunci API berbeda—sering dibuat sebagai string acak opaque tanpa kendala menghafal manusia.
Percakapan generator terbelah antara passphrase yang bisa diucapkan dan rahasia vault yang hanya hidup di clipboard.
Retakan offline versus dongeng pemasaran "butuh milenium"
Bagan pemasaran yang mengklaim "butuh ribuan tahun" sering mengasumsikan uniformitas tidak realistis dan mengabaikan dump hash yang membolehkan miliaran tebakan per detik tanpa rate limit login.
Sandi panjang yang benar‑benar acak tetap kokoh terhadap retakan offline ketika ruang pencarian eksponensial besar—asalkan fungsi hashing tetap mahal per tebakan.
RNG perangkat keras, virtualisasi, dan cloud
Mayoritas aplikasi bergantung pada CSPRNG OS yang di‑seed dari sumber entropi perangkat keras; hypervisor pernah gagal pada seed awal—lebih jarang sekarang tetapi tetap mengajar integrasi yang benar penting.
Pada VM cloud, ledakan cold start yang mencetak banyak materi TLS cepat memicu kekhawatiran kelaparan entropi kontemporer; ikuti panduan platform daripada folklore dekade lalu tanpa verifikasi.
Generasi sisi klien di lingkungan teregulasi
Generator browser cocok untuk draf dan prototipe lokal; aplikasi teregulasi tetap menjangkar batas kepercayaan di server untuk logging penerbitan dan pencabutan.
Ingatkan pengguna bahwa pengelola sandi, ekstensi browser, dan riwayat clipboard bisa lebih lama menyimpan rahasia daripada intuisi mereka.
Pola pelengkap untuk sandi acak
Utamakan sandi unik per situs melalui pengelola.
Aktifkan faktor kedua tempat didukung.
Rotasi responsif terhadap pelanggaran kredibel—bukan ritual kuartalan kosmetik semata.
Diceware, passphrase, dan rekayasa pengingatan
Skema seperti Diceware menarik seragam dari daftar kata kurasi dan mengalikan entropi tiap lemparan dadu—berbeda dari "ketukan keyboard acak" yang membiasakan jari ke kuadran tertentu.
Bedakan rahasia untuk diucapkan dengan rahasia khusus clipboard.
Teater rotasi versus rotasi berbasis bukti
Rotasi kalender sering melatih pola dapat diprediksi (Winter2026a, Winter2026b). Sandi segar secara kriptografi tetap membantu setelah kompromi dikonfirmasi atau lonjakan credential stuffing berkorelasi dengan domain Anda.
Daftar periksa sebelum mengirim UI generator
Gunakan crypto.getRandomValues atau setara platform untuk byte rahasia.
Hindari bias modulo pada pemetaan charset.
Tampilkan transparansi charset supaya pengguna tahu kolam sampling.
Peringatkan penyalinan ke saluran tidak aman seperti log chat atau rekaman layar.
Randomness kriptografi menghilangkan template dapat diprediksi tetapi tidak menggantikan panjang, higiene penyimpanan, pilihan hashing, atau MFA berlapis.
Saat Anda ingin membuat prototipe sandi kuat secara lokal tanpa mengemail diri sendiri kandidat rahasia, Coba Generator Sandi →