Hash/Kripto
Bcrypt Hash + Verify
Hash kata sandi dengan bcrypt (dengan salt acak dan cost yang dapat disesuaikan) dan verifikasi kata sandi terhadap hash bcrypt yang sudah ada.
Bcrypt is a deliberately slow password-hashing algorithm: unlike MD5 or SHA-256, it intentionally requires heavy computation so that brute-forcing passwords stays impractical even if a database of hashes leaks.
How to use it
- Hash: enter a password and set a cost factor — a higher number means slower, more secure hashing.
- Every hash call generates a fresh random salt, so the same password produces a different hash each time — that's expected and normal.
- Verify: paste a password and an existing bcrypt hash to check whether they match, without hashing manually yourself.
Common uses
- Manually checking that a backend hashes passwords correctly before storing them.
- Generating a test bcrypt hash for seed data or fixtures during development.
- Debugging a failed login by comparing an entered password against the stored hash.
Things to keep in mind
Pick a cost factor that keeps hashing around 100-300ms on your target server — a balance between security and login-time load.
Bcrypt truncates passwords longer than 72 bytes — characters beyond that limit are ignored by the algorithm.
Artikel tentang alat ini: Bcrypt: mengapa kata sandi di-hash secara lambat, bukan cepat
Pertanyaan yang sering diajukan
Mengapa bcrypt memiliki faktor "cost" atau "rounds"?
Faktor cost mengontrol berapa kali hashing diulang secara internal, sehingga hashing menjadi eksponensial lebih lambat seiring meningkatnya nilai. Ini memungkinkan Anda dengan sengaja membuatnya cukup lambat untuk menahan serangan brute-force meski perangkat keras semakin cepat.
Mengapa hash bcrypt selalu memiliki panjang yang sama terlepas dari kata sandi saya?
Bcrypt menghasilkan hash dengan panjang tetap (biasanya 60 karakter) yang mengkodekan versi algoritma, faktor cost, salt, dan hash bersamaan — panjangnya tidak bergantung pada panjang kata sandi asli.
Apakah bcrypt memerlukan kolom salt terpisah?
Tidak. Salt dibuat secara otomatis dan disematkan langsung dalam string keluaran, jadi Anda tidak perlu menyimpan atau mengelolanya secara terpisah — salt disertakan setiap kali Anda memverifikasi kata sandi terhadap hash.
Apakah ada batasan panjang kata sandi pada bcrypt?
Ya, bcrypt hanya memproses 72 byte pertama dari kata sandi — apa pun yang lebih panjang akan dibuang begitu saja tanpa peringatan. Dalam praktiknya ini jarang menjadi masalah, tetapi perlu diingat saat bekerja dengan kata sandi yang sangat panjang atau karakter non-ASCII, di mana satu karakter bisa menempati beberapa byte.
Mengapa bcrypt masih direkomendasikan jika ada Argon2?
Bcrypt telah teruji secara praktis selama puluhan tahun, didukung secara luas di semua bahasa dan framework, dan tetap menjadi pilihan yang cukup andal. Argon2 direkomendasikan sebagai pilihan prioritas untuk sistem baru karena perlindungan terhadap serangan GPU/ASIC, tetapi bcrypt tidak dianggap tidak aman — hanya kurang tahan terhadap perangkat keras khusus.