Skip to content

Generator & Verifier Hash Bcrypt

Buat dan verifikasi hash kata sandi bcrypt online — biaya yang dapat diatur, prefiks $2b$/$2a$/$2y$. 100% di browser Anda; kata sandi tidak pernah diunggah.

Tanpa Pelacakan Berjalan di Browser Gratis
100% di browser Anda — kata sandi Anda tidak pernah meninggalkan perangkat Anda.
Hash bcrypt
Anatomi hash
Versi
Biaya
Salt
Digest

Mengikuti perilaku referensi bcrypt dengan keluaran yang diperiksa silang terhadap Node bcrypt, Python bcrypt, dan Apache htpasswd — Tim Keamanan Go Tools · Jun 12, 2026

Apa Itu Bcrypt?

Bcrypt adalah fungsi hashing kata sandi yang dirancang khusus untuk menyimpan kata sandi secara aman. Alih-alih menyimpan kata sandi dalam bentuk plaintext, server menyimpan hash bcrypt satu arah; ketika pengguna login, server meng-hash kata sandi yang dikirim dengan cara yang sama dan memeriksa bahwa kedua hash cocok. Bcrypt dibangun di atas cipher Blowfish dan dirancang oleh Niels Provos dan David Mazières pada 1999, dengan satu fitur sengaja yang membedakannya dari hash serbaguna seperti SHA-256: bcrypt lambat dengan sengaja, dan Anda dapat membuatnya lebih lambat seiring waktu dengan faktor biaya yang dapat diatur saat perangkat keras menjadi lebih cepat.

Hash bcrypt adalah satu string sepanjang 60 karakter yang menggambarkan dirinya sendiri — misalnya $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq. String ini mengemas empat bagian: versi ($2b$), biaya (12, sebuah work factor logaritmik), salt Base64 sepanjang 22 karakter, dan digest Base64 sepanjang 31 karakter. Karena salt bersifat acak dan tertanam dalam hash, kata sandi yang sama menghasilkan hash berbeda setiap kali — yang menggagalkan tabel pelangi dan menyembunyikan fakta bahwa dua pengguna memilih kata sandi yang sama. Verifikasi membaca kembali salt dan biaya dari hash tersimpan dan me-hash ulang kandidat, sehingga bcrypt tidak pernah perlu (dan tidak dapat) membalik hash untuk memulihkan kata sandi.

Alat ini berjalan sepenuhnya di browser Anda menggunakan implementasi bcrypt yang dipaketkan — tidak ada kata sandi atau hash yang pernah diunggah. Gunakan untuk membuat hash dengan biaya dan prefiks yang dipilih, untuk memverifikasi kata sandi terhadap hash yang ada, dan untuk membaca anatomi sebuah hash. Alat ini berpasangan secara alami dengan alat keamanan lainnya: lindungi sebuah direktori dengan HTTP Basic Auth menggunakan Generator htpasswd kami (yang dapat memancarkan entri bcrypt secara langsung), cetak kata sandi kuat untuk di-hash dengan Generator Kata Sandi Acak kami, dan gunakan Generator SHA-256 kami saat Anda membutuhkan checksum serbaguna yang cepat alih-alih hash kata sandi yang lambat. Jika Anda sedang memutuskan algoritma mana untuk menyimpan kata sandi, bandingkan opsinya di bcrypt vs Argon2 vs scrypt.

// Node.js — bcryptjs / bcrypt (emits $2b$)
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash('correct horse battery staple', 12);
// -> $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
const ok = await bcrypt.compare('correct horse battery staple', hash); // true

# Python — bcrypt
import bcrypt
hashed = bcrypt.hashpw(b'correct horse battery staple', bcrypt.gensalt(12))
bcrypt.checkpw(b'correct horse battery staple', hashed)  # True

# PHP — password_hash (emits $2y$)
$hash = password_hash('correct horse battery staple', PASSWORD_BCRYPT, ['cost' => 12]);
password_verify('correct horse battery staple', $hash); // true

# Apache htpasswd CLI — bcrypt entry to stdout (-B bcrypt, -b inline, -n stdout)
htpasswd -Bbn admin 'correct horse battery staple'
# -> admin:$2y$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq

Fitur Utama

Buat Hash Bcrypt

Hasilkan hash bcrypt 60 karakter standar dari kata sandi apa pun dengan salt acak baru. Setiap klik menghasilkan hash valid yang berbeda, persis seperti penyimpanan kata sandi sungguhan.

Faktor Biaya yang Dapat Diatur

Setel work factor dari 4 hingga 15 (12 adalah default modern). Rasakan bagaimana setiap langkah kira-kira menggandakan waktu komputasi sehingga Anda dapat memilih biaya yang kuat namun cukup cepat untuk login.

Pilih Prefiks Versi

Pancarkan $2b$ (standar bcryptjs terkini), $2y$ (PHP / htpasswd Apache), atau $2a$ (yang asli). Semuanya dapat saling dipertukarkan untuk verifikasi lintas library.

Verifikasi Kata Sandi Terhadap Hash

Tempel hash tersimpan dan kata sandi kandidat untuk memastikan secara langsung apakah keduanya cocok — dengan me-hash ulang menggunakan salt dan biaya yang tertanam, tanpa pernah mendekripsi. Ideal untuk men-debug login yang gagal.

Rincian Anatomi Hash

Lihat hash bcrypt apa pun dipisahkan menjadi versi, biaya, salt, dan digest, sehingga struktur string $2b$12$... terlihat jelas dalam sekejap.

100% di Sisi Klien

Semua hashing dan verifikasi terjadi secara lokal di browser Anda. Tidak ada kata sandi atau hash yang pernah dikirim ke server, sehingga Anda dapat bekerja dengan kredensial nyata secara privat.

Contoh Generator Bcrypt

hash bcrypt (biaya 12, $2b$)

password: correct horse battery staple
cost: 12
prefix: $2b$
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq

Hash bcrypt pada biaya 12 dengan prefiks $2b$. Salt bersifat acak, sehingga kata sandi yang sama menghasilkan hash berbeda setiap kali — namun semuanya tetap terverifikasi terhadap kata sandi aslinya.

Verifikasi kata sandi terhadap sebuah hash

password: correct horse battery staple
hash: $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
✓ Cocok — kata sandi benar untuk hash ini

Verifikasi tidak mendekripsi hash. bcrypt me-hash ulang kata sandi kandidat menggunakan salt dan biaya yang tertanam dalam hash tersimpan, lalu membandingkan hasilnya. Kecocokan berarti kata sandi benar.

Rincian anatomi hash

$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
version: $2b$ · cost: 12 · salt: dUSFKqT1FCMYZ6hcQfsxuO · digest: NizEqcX8IGK8snfVSowP5Uu.TDJoPUq

Setiap hash bcrypt menggambarkan dirinya sendiri: tag versi, biaya dua digit, salt Base64 sepanjang 22 karakter, dan digest Base64 sepanjang 31 karakter, semuanya dalam satu string sepanjang 60 karakter. Alat ini memisahkannya agar Anda dapat membacanya sekilas.

Cara Menggunakan Generator Bcrypt

  1. 1

    Masukkan Kata Sandi & Pilih Biaya

    Pada tab Buat, ketik kata sandi atau klik Kata sandi acak. Pilih faktor biaya (4–15; 12 adalah default modern) dan prefiks versi — $2b$, $2a$, atau $2y$ — agar sesuai dengan stack Anda.

  2. 2

    Buat Hash

    Hash bcrypt dihitung secara lokal dengan salt acak baru dan muncul sebagai satu string $2b$12$... sepanjang 60 karakter. Klik Salin untuk mengambilnya, atau buat ulang untuk hash ber-salt baru.

  3. 3

    Baca Anatomi atau Verifikasi

    Panel anatomi memisahkan hash menjadi versi, biaya, salt, dan digest. Beralih ke tab Verifikasi untuk menempel hash tersimpan dan kata sandi dan memastikan secara langsung apakah keduanya cocok.

Common Errors

Mencoba Mendekripsi Hash

Bcrypt bersifat satu arah; tidak ada dekripsi. Untuk memeriksa kata sandi, verifikasi terhadap hash alih-alih mencoba membalik digest.

✗ Salah
bcrypt.decrypt(hash)  // no such operation
✓ Benar
bcrypt.compare(password, hash)  // returns true / false

Mengatur Biaya Terlalu Rendah

Biaya rendah seperti 4 atau 6 meng-hash hampir seketika, yang juga membuat penyerang dapat melakukan brute-force terhadap hash bocor dengan cepat. Gunakan 12 sebagai baseline.

✗ Salah
cost: 4  // far too fast, weak against brute force
✓ Benar
cost: 12  // modern default, resists brute force

Mengharapkan Hash yang Sama Dua Kali

Karena salt bersifat acak, meng-hash kata sandi yang sama lagi menghasilkan string yang berbeda. Bandingkan dengan verify, jangan pernah dengan memeriksa kesetaraan byte dua hash.

✗ Salah
hash(pw) === storedHash  // fails — different salts
✓ Benar
bcrypt.compare(pw, storedHash)  // correct check

Kasus Penggunaan Umum

Isi Hash Kata Sandi di Database
Buat hash bcrypt untuk akun admin atau uji dan masukkan langsung ke tabel pengguna Anda, sehingga Anda dapat login tanpa harus menyiapkan alur pendaftaran lengkap terlebih dahulu.
Debug Login yang Gagal
Verifikasi kata sandi yang diketahui benar terhadap hash tersimpan untuk memastikan apakah hash itu sendiri sudah benar, memisahkan bug dari kode autentikasi Anda.
Pilih Faktor Biaya yang Tepat
Buat hash pada beberapa level biaya pada perangkat keras Anda sendiri untuk merasakan berapa lama waktu yang diperlukan setiap level, lalu pilih work factor yang tahan brute force tanpa memperlambat login nyata.
Buat Entri htpasswd / Basic Auth
Hasilkan hash bcrypt $2y$ untuk kredensial Apache, Docker Registry, atau Caddy, lalu masukkan ke baris user:hash untuk HTTP Basic Auth.
Bangun Fixture Pengujian
Cetak hash bcrypt yang deterministik-per-kata-sandi untuk mengisi pengujian integrasi alur login atau reset kata sandi tanpa menyiapkan server autentikasi nyata.
Audit Hash yang Anda Temukan
Baca anatomi string bcrypt dalam konfigurasi atau dump untuk memeriksa faktor biayanya, dan verifikasi terhadap kata sandi yang Anda harapkan untuk memastikan kecocokan.

Detail Teknis

Berbasis Blowfish, Biaya Adaptif
Bcrypt menurunkan hash-nya dari penyiapan kunci yang mahal pada cipher Blowfish, diulang 2^biaya kali. Menaikkan biaya satu langkah menggandakan kerjanya, menjaga fungsi tetap lambat terhadap brute force saat perangkat keras membaik.
Salt Acak 128-Bit
Setiap hash menanamkan salt acak 16-byte (128-bit), yang di-encode Base64 sebagai 22 karakter setelah biaya. Salt membuat setiap hash unik, sehingga kata sandi identik tidak pernah berbagi digest dan tabel pelangi tidak berlaku.
Format 60 Karakter yang Menggambarkan Diri Sendiri
Keluarannya adalah $version$cost$salt+digest — string tetap sepanjang 60 karakter yang membawa segala yang diperlukan untuk memverifikasinya. Tidak diperlukan kolom salt atau penyimpanan parameter terpisah.
Batas Kata Sandi 72 Byte
Bcrypt hanya meng-hash 72 byte pertama dari sebuah kata sandi; apa pun setelah itu diabaikan secara diam-diam. Untuk passphrase yang sangat panjang, pra-hashing (misalnya dengan SHA-256) sebelum bcrypt adalah mitigasi yang umum.
Verifikasi, Jangan Dekripsi
Bcrypt bersifat satu arah. Verifikasi menjalankan ulang hash pada kata sandi kandidat menggunakan salt dan biaya yang diurai dari hash tersimpan, lalu membandingkan digest dalam waktu konstan. Tidak ada operasi yang memulihkan plaintext.
Catatan Kejujuran & Peringatan
Hash dihitung secara lokal dan tidak pernah diperiksa terhadap sistem langsung. Hash yang disalin dan kata sandi apa pun yang Anda ketik tersimpan di clipboard dan memori browser Anda — perlakukan sebagai rahasia dan bersihkan clipboard Anda setelah menempel ke produksi.

Praktik Terbaik

Gunakan Biaya 12 atau Lebih Tinggi
Biaya 12 adalah baseline modern; naikkan ke arah 14 untuk sistem sensitif selama latensi login tetap dapat diterima. Evaluasi ulang secara berkala — yang cukup lambat lima tahun lalu murah untuk diserang hari ini.
Jangan Pernah Menyimpan atau Mencatat Plaintext
Simpan hanya hash bcrypt, jangan pernah kata sandi asli, dan jauhkan kata sandi dari log dan pesan kesalahan. Seluruh nilai bcrypt hilang jika plaintext bocor bersamanya.
Biarkan bcrypt Menangani Salt
Bcrypt menghasilkan dan menanamkan salt acak yang aman untuk Anda. Jangan menyediakan salt statis Anda sendiri atau menggunakannya kembali — salt acak per-hash itulah yang menggagalkan tabel pelangi.
Perhatikan Batas 72 Byte
Jika Anda menerima passphrase panjang, ingat bahwa bcrypt mengabaikan byte setelah 72. Pertimbangkan pra-hashing dengan SHA-256, atau evaluasi Argon2id, ketika input yang sangat panjang harus tercakup sepenuhnya.

FAQ Generator Bcrypt

Apakah generator bcrypt online aman digunakan?
Dengan yang ini, ya — karena apa pun yang Anda ketik tidak pernah meninggalkan browser Anda. Kata sandi, hash yang dihasilkan, dan verifikasinya semua berjalan secara lokal dengan JavaScript di perangkat Anda sendiri. Tidak ada permintaan jaringan, tidak ada pencatatan, dan tidak ada penyimpanan: Anda dapat memastikannya dengan membuka Developer Tools browser (F12 → tab Network) saat membuat hash dan memperhatikan nol permintaan keluar, atau dengan memutus koneksi internet dan melihat alat tetap berfungsi. Itu kebalikan dari generator mencurigakan yang melakukan POST kata sandi Anda ke server. Sebagai kebiasaan, tetap utamakan kata sandi uji sekali pakai dibanding kata sandi produksi yang sebenarnya saat Anda hanya bereksperimen.
Bagaimana cara membuat hash bcrypt online?
Buka tab Buat, ketik kata sandi (atau klik Kata sandi acak untuk mencetak yang kuat), pilih faktor biaya — 12 adalah default modern — dan pilih prefiks versi: $2b$ untuk sebagian besar stack modern, $2y$ untuk PHP dan Apache, atau $2a$ untuk identifier asli. Hash bcrypt dihitung secara instan di browser Anda dengan salt acak baru dan muncul sebagai satu string $2b$12$... sepanjang 60 karakter yang dapat Anda salin dengan satu klik. Tidak ada yang diunggah: kata sandi dan hash tidak pernah meninggalkan perangkat Anda. Buat lagi kapan saja untuk mendapatkan hash valid lain untuk kata sandi yang sama, karena masing-masing membawa salt acak yang berbeda.
Bisakah hash bcrypt didekripsi atau dibalik?
Tidak. bcrypt adalah fungsi hashing kata sandi satu arah, bukan enkripsi, sehingga tidak ada kunci dan tidak ada operasi dekripsi yang mengembalikan hash menjadi kata sandi asli. Satu-satunya cara mengetahui kata sandi dari sebuah hash adalah menebak kandidat dan meng-hash setiap kandidat hingga cocok — yang justru itulah yang dirancang agar lambat dan mahal oleh faktor biaya bcrypt yang dapat diatur. Itulah sebabnya Anda memverifikasi kata sandi terhadap sebuah hash alih-alih mendekripsinya: alat ini me-hash ulang kandidat Anda dengan salt dan biaya yang tersimpan dalam hash lalu memeriksa apakah hasilnya identik.
Faktor biaya (work factor) berapa yang sebaiknya saya gunakan?
Biaya 12 adalah default modern dan keseimbangan yang masuk akal antara keamanan dan kecepatan. Biaya adalah work factor logaritmik: setiap kenaikan menggandakan jumlah putaran internal, sehingga biaya 13 memerlukan waktu kira-kira dua kali lipat untuk dihitung dan diverifikasi dibanding biaya 12, dan biaya 11 memerlukan setengahnya. Biaya lebih tinggi memperlambat penyerang yang melakukan brute-force terhadap hash yang bocor, tetapi juga menambah latensi pada setiap login yang sah, jadi jangan menaikkannya melewati titik di mana autentikasi terasa lambat pada perangkat keras Anda yang sebenarnya. Biaya 10 dapat diterima untuk endpoint berisiko rendah; 12–14 cocok untuk apa pun yang sensitif. Rentang valid adalah 4 hingga 31, dan alat ini memungkinkan Anda memilih 4 hingga 15.
Apa perbedaan antara $2a$, $2b$, dan $2y$?
Itu adalah prefiks versi untuk algoritma bcrypt yang sama, dan perbedaannya berakar pada perbaikan bug historis dalam cara beberapa implementasi menangani panjang string dan karakter high-bit. $2a$ adalah identifier asli yang banyak digunakan; $2b$ adalah versi terkini yang dikoreksi yang dipancarkan oleh library bcryptjs dan sebagian besar implementasi modern; dan $2y$ adalah identifier yang digunakan oleh PHP dan htpasswd Apache. Untuk verifikasi keduanya dapat saling dipertukarkan — hash yang Anda buat di sini dengan prefiks apa pun akan tervalidasi dengan benar lintas library, karena semuanya menjalankan fungsi inti yang sama. Pilih prefiks yang diharapkan stack Anda jika Anda membutuhkan kompatibilitas byte-for-byte.
Bagaimana cara memverifikasi kata sandi terhadap hash bcrypt?
Beralih ke tab Verifikasi, tempel hash bcrypt tersimpan (string lengkap $2b$12$...) dan kata sandi kandidat, dan alat ini langsung memberi tahu apakah keduanya cocok. Cara kerjanya adalah dengan mengekstrak salt dan biaya yang tertanam dalam hash, me-hash ulang kata sandi kandidat dengan parameter yang sama persis, dan membandingkan digest baru dengan yang tersimpan — tidak ada dekripsi yang terlibat. Inilah cara sistem login memeriksa kata sandi: sistem tidak pernah memulihkan plaintext, hanya memastikan bahwa me-hash ulang kata sandi yang dikirim menghasilkan hash tersimpan.
bcrypt vs Argon2 vs scrypt — mana yang sebaiknya saya gunakan?
Ketiganya adalah fungsi hashing kata sandi yang sengaja lambat dan ber-salt, dan semuanya jauh lebih baik daripada SHA-256 polos untuk menyimpan kata sandi. bcrypt adalah yang paling banyak didukung dan teruji, dengan biaya yang dapat diatur secara sederhana; keterbatasan utamanya adalah batas kata sandi 72 byte dan sifatnya yang hanya terikat CPU. scrypt menambahkan kekerasan memori, membuat serangan GPU/ASIC skala besar lebih mahal. Argon2 (khususnya Argon2id) adalah rekomendasi terkini dari Password Hashing Competition dan OWASP, yang menyetel waktu, memori, dan paralelisme secara independen. Jika Anda memilih dari awal hari ini, Argon2id adalah default terkuat; bcrypt tetap pilihan yang sangat baik dan aman — terutama di mana dukungan library atau interoperabilitas penting. Kami membahas tradeoff-nya secara mendalam di bcrypt vs Argon2 vs scrypt.
Mengapa hash bcrypt berbeda setiap kali?
Karena bcrypt menghasilkan salt acak baru untuk setiap hash, dan salt dicampurkan sebelum hashing. Oleh karena itu kata sandi yang sama menghasilkan string 60 karakter yang sepenuhnya berbeda setiap kali Anda mengklik Buat — dan itulah maksudnya: hal ini menghentikan penyerang dari memprakomputasi tabel pelangi atau menyadari bahwa dua pengguna berbagi kata sandi yang sama. Salt tidak rahasia; salt tersimpan tepat di dalam hash (22 karakter setelah biaya), sehingga verifikasi dapat membacanya kembali. Jika Anda menggulung ulang hash, Anda hanya mendapatkan hash valid lain untuk kata sandi yang sama, dan setiap di antaranya akan terverifikasi dengan sukses.