Generator Hash bcrypt
hasilkan hash
Nilai lebih tinggi = lebih lambat dan lebih aman. 12 adalah pilihan bawaan yang baik.
Sesekali Anda punya hash bcrypt dari backup lama dan sebuah password plaintext, lalu perlu tahu apakah keduanya cocok. Atau Anda punya password dan ingin hash yang akan dihasilkan oleh faktor cost tertentu. Tool ini melakukan keduanya: ketik password untuk membuat hash baru, tempel hash dan kandidat password untuk mengetahui apakah verifikasi berhasil - memakai constant-time compare yang sama seperti pengecekan login produksi.
Generate atau verifikasi bcrypt
-
1
Pilih mode
Buat hash baru dari password, atau verifikasi password terhadap hash `$2a$` / `$2b$` / `$2y$` yang sudah ada.
-
2
Untuk generate: masukkan plaintext dan cost
Cost 4-14; 10-12 adalah normal. Salt acak 16 byte dibuat untuk setiap hash.
-
3
Untuk verify: tempel hash dan plaintext
Tool mengekstrak salt dan cost dari hash, lalu melakukan re-hash plaintext dengan parameter yang sama.
-
4
Baca hasilnya
Mode generate menyalin hash 60 karakter; mode verify mengembalikan match hijau atau mismatch merah.
Internal mode verify
Diberikan hash tersimpan seperti:
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
Verifier:
- Mem-parse versi (
2b), cost (12), salt (22 karakter pertama setelah cost), dan digest (31 karakter terakhir). - Menjalankan ulang bcrypt pada plaintext kandidat dengan salt dan cost yang diekstrak.
- Membandingkan digest hasil dengan digest asli memakai constant-time comparison.
Perbandingan yang berhasil menghasilkan true; perbedaan apa pun menghasilkan false.
Constant-time comparison
Membandingkan dua string dengan == yang naif akan berhenti begitu ada byte yang berbeda - timing side channel yang dapat membocorkan digit hash satu per satu jika sampelnya cukup banyak. Pengecekan password produksi (dan tool ini) memakai constant-time compare yang selalu memeriksa setiap byte, sehingga waktu keputusan tidak bergantung pada berapa banyak byte awal yang cocok.
Kasus diagnostik umum
| Gejala | Kemungkinan penyebab |
|---|---|
| Verifikasi gagal, Anda yakin password benar | Spasi di akhir atau BOM di input. Hapus keduanya. |
Verifikasi gagal, versi 2y |
Beberapa library tidak menyukai 2y; itu valid dan kompatibel. Re-hash dengan 2b ke depan. |
| Hash terlalu pendek / malformed | Bukan hash bcrypt. MD5 adalah 32 karakter hex, SHA-1 40, bcrypt 60 dengan delimiter $. |
| Peringatan cost mismatch | Cost tersimpan di bawah minimum policy Anda. Re-hash pada login berhasil berikutnya. |
Rehashing saat login
Praktik terbaik: ketika user berhasil login, cek apakah hash tersimpan memiliki cost lebih rendah dari policy Anda saat ini. Jika ya, re-hash password pada cost baru dan update database. Dalam beberapa bulan, seluruh basis pengguna naik level tanpa meminta siapa pun mengganti password.
Yang tidak dilakukan tool ini
- Verifikasi bulk - Dibuat untuk satu hash per waktu.
- Crack atau brute force - Serangan dictionary atau rainbow-table sengaja di luar cakupan.
- Mengambil plaintext - bcrypt satu arah; jika password terlupa, satu-satunya jalan adalah reset.
Pertanyaan yang Sering Diajukan
Tidak. Hashing dan verifikasi terjadi di browser Anda. Baik plaintext maupun hash tidak meninggalkan halaman.
Salt dibuat acak per hash. Itulah inti keamanannya - dua user dengan password yang sama mendapatkan hash berbeda, sehingga rainbow tables kalah.
Ya, tepat itulah fungsi mode verify: tempel hash yang Anda punya, tempel kandidat password, lalu tool mengonfirmasi atau menolak kecocokan.
Ya. Semua varian modern interoperable - digest kompatibel lintas versi; yang berbeda hanya tag. Beberapa hash $2$ lama dari sistem era 2000 mungkin membutuhkan library dengan dukungan legacy eksplisit.
Alat Terkait
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.
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 Sandi Atbash
Encode atau decode teks dengan sandi Atbash, substitusi Ibrani yang memetakan A-Z menjadi Z-A. Operasi yang sama mengenkripsi dan mendekripsi.
Encoder dan Decoder Base32
Encode dan decode string Base32 memakai alfabet RFC 4648. Berguna untuk secret TOTP, token case-insensitive, dan identifier yang diketik manusia.
Generator bcrypt
Buat hash bcrypt dari password plaintext. Faktor cost dapat diatur dari 4 sampai 14, kompatibel dengan Laravel, Django, Node, dan PHP.
Encoder dan Decoder Base85
Encode dan decode Base85 dalam varian Adobe Ascii85 (PostScript/PDF) atau Z85 (ZeroMQ). Lebih ringkas daripada Base64 untuk data biner.