bcrypt
password_hash / password_verify
bcrypt password hashing and verification.
Cara Penggunaan
Gambaran Umum
Alat untuk membuat hash menggunakan bcrypt atau memverifikasi string hash.
Salah satu kasus penggunaan umum hashing adalah "penyimpanan kata sandi".
Sebagai prinsip dasar, tidak mungkin membalik hash untuk mendapatkan data asli (satu arah).
Tidak mungkin mendapatkan kata sandi asli dari hash bcrypt-nya.
Itulah mengapa kata sandi tidak disimpan secara langsung — sebagai gantinya, hash biasanya disimpan.
Kata sandi yang sama akan selalu menghasilkan hash yang sama.
Ini berarti Anda dapat memverifikasi sebuah string dengan membandingkannya dengan hash yang diketahui.
(Misalnya, untuk memeriksa apakah hash dihasilkan dari kata sandi tertentu)
Pembuatan Hash (password_hash)
Hashing bcrypt dilakukan dengan kode seperti berikut.$hash = password_hash('string_to_hash', PASSWORD_BCRYPT, [
'cost' => 'cost',
]);
String hash yang dihasilkan oleh bcrypt menyertakan salt (string acak), sehingga string yang berbeda dihasilkan setiap kali.
$2y$10$Z0kGQ04hCto9dnMu.GyzWOWNQmoKyeF5PXH.zsrf/I.yNJRcbdN86
Biaya default dari fungsi password_hash adalah 10.
Meskipun password_hash menerima rentang 4–31, alat ini membatasinya hingga 4–15 untuk menghindari beban server yang berlebihan.
(Nilai yang lebih tinggi dapat membutuhkan waktu sangat lama untuk diproses.)
Verifikasi Hash (password_verify)
String hash bcrypt mengikuti format tertentu yang menyertakan salt dan jumlah iterasi, sehingga memungkinkan verifikasi apakah hash dihasilkan dari string tertentu.
Verifikasi hash bcrypt dilakukan dengan kode seperti berikut.$result = password_verify('original_string', 'hash_string_to_verify');