Generator bcrypt
bcrypt masih menjadi salah satu pilihan paling aman untuk menyimpan password. Ia sengaja dibuat lambat, membuat salt sendiri, dan dapat diskalakan menghadapi peningkatan hardware melalui parameter cost yang bisa diatur. Generator ini menghasilkan hash bcrypt yang sesuai standar dari password plaintext, sehingga Anda dapat membuat user uji, memigrasikan akun antar sistem, atau membandingkan nilai dengan hash yang sudah ada di kolom users.password.
Cara membuat hash password dengan bcrypt
-
1
Masukkan password plaintext
Hingga 72 byte - bcrypt diam-diam memotong input setelah batas itu.
-
2
Pilih faktor cost
12 adalah default di sini; 10 adalah pilihan legacy yang lebih cepat; 13 adalah pengaturan terkuat di alat ini. Setiap +1 kira-kira menggandakan waktu hashing.
-
3
Salt acak dibuat
Salt 16 byte diambil dari RNG kriptografis dan disematkan dalam string hash yang dihasilkan.
-
4
Salin hash
Output berupa string self-describing seperti `$2b$12$...` yang mencakup versi, cost, salt, dan digest.
Anatomi hash bcrypt
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
| | | |
| | salt (22 karakter Base64) digest (31 karakter Base64)
| cost (2 digit, 4-31)
versi (2a, 2b, 2y - semuanya bcrypt)
Seluruh string panjangnya 60 karakter. Kolom bertipe VARCHAR(60) atau CHAR(60) adalah skema standar.
Rekomendasi faktor cost
| Cost | Perkiraan waktu per hash (CPU 2024) | Penggunaan |
|---|---|---|
| 10 | ~80 ms | Default lama, masih dapat diterima |
| 12 | ~300 ms | Baseline rekomendasi saat ini |
| 13 | ~600 ms | Aplikasi dengan keamanan lebih tinggi |
| 14 | ~1.2 s | Di luar rentang alat ini (maksimal 13) |
Setiap kenaikan menggandakan work factor. Jika latensi login di bawah 500 ms sangat penting, tetap di 10-12.
Byte versi: 2a vs 2b vs 2y
$2a$- Spesifikasi asli 1999. Sebagian besar library menghasilkan hash2a.$2b$- Revisi 2014 yang memperbaiki bug truncation di crypt_blowfish. Lebih disukai untuk hash baru.$2y$- Tag khusus PHP, secara fungsional setara dengan$2b$.
Ketiganya bisa diverifikasi satu sama lain; yang berbeda hanya tag pada string hash.
Perlindungan yang diberikan bcrypt
- Rainbow tables - Salt unik per hash mengalahkan lookup yang sudah diprakomputasi.
- Cracking GPU/ASIC - Key schedule Blowfish bersifat memory-bound dan tidak ramah GPU. Tidak sekeras Argon2 terhadap GPU, tetapi masih lambat untuk brute force.
- Kebocoran database - Plaintext tidak pernah bisa dipulihkan dari hash tanpa brute force.
Yang TIDAK dilindungi bcrypt: password lemah (gunakan panjang minimum dan cek terhadap daftar breach), credential stuffing (gunakan faktor kedua), phishing.
Batas 72 byte
bcrypt hanya memakai 72 byte pertama dari password. Input lebih panjang dipotong diam-diam; alasan yang sama membuat banyak library kini merekomendasikan pre-hashing password dengan SHA-256 sebelum memasukkannya ke bcrypt. Alternatif modern (Argon2, scrypt) tidak memiliki batas ini.
Pertanyaan yang Sering Diajukan
Ya untuk penyimpanan password, pada cost ≥ 12. OWASP masih mencantumkannya sebagai algoritma yang dapat diterima. Argon2id adalah pilihan yang lebih disukai untuk sistem baru, tetapi memigrasikan hash bcrypt legacy adalah prioritas rendah.
Karena salt dibuat acak per hash. Verifikasi mengambil salt dari hash tersimpan, melakukan re-hash password yang dikirim dengan salt itu, lalu membandingkannya.
Sebagian besar library tidak mengekspos ini, dan ada alasan bagus - salt yang bisa diprediksi mengalahkan tujuannya. Gunakan salt yang dibuat library; itulah jalur yang aman.
Setiap +1 kira-kira menggandakan waktu hashing, jadi cost 13 memakan waktu sekitar 8x lebih lama daripada cost 10. Tetaplah di rentang 10-12 kecuali aplikasi Anda benar-benar butuh kekuatan ekstra.
Alat Terkait
Encoder File Base64
Encode file apa pun (PDF, ZIP, gambar, file program) menjadi teks Base64 untuk disematkan dalam JSON, email, YAML, atau data URI. Berjalan lokal, tanpa unggah.
Pengode sandi A1Z26
Kodekan teks dengan sandi A1Z26 (A=1, B=2, ... Z=26) atau baca kembali urutan angka menjadi huruf, dengan pemisah yang bisa disesuaikan.
Encoder dan Decoder Base58
Encode teks UTF-8 atau byte heksadesimal dan decode Base58 secara aman dengan alfabet Bitcoin, Ripple, atau Flickr.
Encoder Sandi Caesar
Enkripsi dan dekripsi teks menggunakan sandi Caesar. Pergeseran apa pun 1-25, mendukung ROT13 sebagai kasus khusus, mempertahankan tanda baca dan kapitalisasi.
Enkripsi / Dekripsi AES
Enkripsi dan dekripsi teks berisiko rendah dengan cipher AES OpenSSL. Passphrase di-hash dengan SHA-256 dan output Base64 berisi IV plus teks terenkripsi.
Encoder Sandi Atbash
Encode atau decode teks dengan sandi Atbash, substitusi Ibrani yang memetakan A-Z menjadi Z-A. Operasi yang sama mengenkripsi dan mendekripsi.
Alat ini tersedia dalam bahasa lain
- bcrypt Oluşturucu [TR]
- Generador bcrypt [ES]
- مولد bcrypt [AR]
- Générateur bcrypt [FR]
- bcrypt-generator [NL]
- bcrypt 생성기 [KO]
- bcrypt Generator [EN]
- Trình tạo bcrypt [VI]
- bcrypt 生成器 [ZH]
- bcryptジェネレーター [JA]
- ตัวสร้าง bcrypt [TH]
- Gerador de bcrypt [PT]
- bcrypt-Generator [DE]
- bcrypt-generator [SV]
- Generator bcrypt [PL]
- Generatore bcrypt [IT]
- Генератор bcrypt [RU]