Generator Kata Sandi Bcrypt
Buat hash bcrypt aman untuk kata sandi secara instan di browser Anda. Pilih faktor biaya dan hash di sisi klien — sepenuhnya privat dan gratis.
Buat hash bcrypt aman untuk kata sandi secara instan di browser Anda. Pilih faktor biaya dan hash di sisi klien — sepenuhnya privat dan gratis.
bcrypt adalah fungsi hashing kata sandi yang dirancang oleh Niels Provos dan David Mazières pada tahun 1999, berasal dari sandi Blowfish. Tidak seperti fungsi hash tujuan umum seperti SHA-256, bcrypt sengaja dibuat lambat — dan dapat dikonfigurasi lambat, melalui parameter biaya — yang merupakan properti yang dibutuhkan oleh hasher kata sandi. Fungsi hash yang lebih cepat memungkinkan penyerang melakukan brute force terhadap lebih banyak kandidat per detik; yang lebih lambat membatasi mereka.
bcrypt juga menggabungkan garam per kata sandi secara otomatis, menghilangkan seluruh kelas serangan berdasarkan tabel pelangi yang telah dihitung sebelumnya. Parameter salt dan cost disimpan sebagai bagian dari output bcrypt, jadi verifikasi hanya memerlukan hash yang disimpan dan kata sandi kandidat — tidak ada pengelolaan salt terpisah. Kombinasi kelambatan, garam, dan format mandiri ini menjadikan bcrypt sebagai hash kata sandi default selama dua dekade dan merupakan pilihan yang kuat saat ini.
Alternatif modern memang ada. Argon2 memenangkan Kompetisi Hashing Kata Sandi 2015 dan menawarkan kekerasan memori serta kekerasan waktu. scrypt menawarkan properti serupa. Untuk desain baru, Argon2id adalah pilihan yang direkomendasikan. bcrypt tetap dapat diterima dan diterapkan secara luas, khususnya di lingkungan di mana Argon2 tidak tersedia.
Menyimpan kata sandi sebagai teks biasa adalah malpraktik. Menyimpannya dengan hash cepat seperti SHA-256 hampir tidak lebih baik — GPU modern menghitung miliaran hash SHA-256 per detik, membuat serangan brute force terhadap kata sandi umum dapat dilakukan dalam hitungan jam. Kelambatan bcrypt yang disengaja mengubah kondisi ekonomi: dengan faktor biaya 12, seorang penyerang menghabiskan sekitar 250 ms per kandidat kata sandi, menjadikan brute force tidak praktis untuk kata sandi non-sepele apa pun.
garam per kata sandi otomatis bcrypt juga mengalahkan serangan tabel pelangi. Dua pengguna dengan kata sandi yang sama menghasilkan hash bcrypt yang berbeda karena garamnya berbeda. Mengkompromikan database kata sandi tidak memungkinkan penyerang dengan cepat mengidentifikasi kata sandi umum atau hit tabel yang telah dihitung sebelumnya.
Ketik kata sandi, pilih biaya, dapatkan hash.
bcrypt menggunakan fase pengaturan kunci sandi Blowfish yang dimodifikasi, diulangi sebanyak 2^kali biaya. Faktor biaya bersifat logaritmik — biaya 12 dua kali lebih lambat dari biaya 11, empat kali lebih lambat dari biaya 10. Penskalaan logaritmik ini memungkinkan administrator menaikkan biaya seiring dengan peningkatan perangkat keras, tanpa mendesain ulang sistem.
Format keluaran adalah $version$cost$saltAndHash dengan saltAndHash dikodekan base64 dengan alfabet khusus. Versinya biasanya $2b$ (varian modern dengan bug sampul yang diperbaiki) atau $2y$ (khusus PHP, setara). Garamnya adalah 16 byte; hashnya adalah 24 byte; bersama-sama mereka menyandikan ke 53 karakter custom-base64.
Panjang input maksimum adalah 72 byte (batas panjang kunci Blowfish). Kata sandi yang lebih panjang akan terpotong secara diam-diam, yang merupakan kekhasan bcrypt yang sudah lama ada. Praktik terbaiknya adalah membatasi panjang kata sandi hingga 72 byte atau melakukan pra-hash dengan SHA-256 untuk menormalkan panjang sebelum bcrypt.