🔑 雜湊
bcrypt
password_hash / password_verify
bcrypt密碼雜湊和驗證。相當於PHP password_hash/password_verify。
使用方法
概述
可使用bcrypt進行雜湊處理或驗證雜湊字串的工具。
💡
轉換處理在伺服器端進行,但不保存任何資料。
雜湊處理的一個常見用途是「儲存密碼」。
基本前提是,無法從雜湊字串還原為原始資料(單向性)。
無法從密碼的雜湊字串推導出原始密碼字串。
因此,通常不直接儲存密碼,而是儲存雜湊字串。
💡
根據雜湊強度,可能存在被暴力破解的風險,但此處省略詳細說明。
相同的密碼字串可以產生相同的雜湊字串。
也就是說,如果有原始字串和雜湊字串,就可以進行驗證。
(例如,驗證某雜湊字串是否由該密碼產生)
雜湊處理(password_hash)
bcrypt雜湊處理使用如下程式碼實作。$hash = password_hash('string_to_hash', PASSWORD_BCRYPT, [
'cost' => 'cost',
]);
bcrypt產生的雜湊字串包含salt(隨機字串),因此每次產生的字串都不同。
$2y$10$Z0kGQ04hCto9dnMu.GyzWOWNQmoKyeF5PXH.zsrf/I.yNJRcbdN86
password_hash函數的cost預設值為10。
password_hash函數本身支援4〜31的範圍,但考量到伺服器負載,本工具限制為4〜15。
(較大的值會導致處理時間非常長)
雜湊驗證(password_verify)
bcrypt產生的雜湊字串有固定格式,包含salt和拉伸次數,因此可以驗證雜湊字串是否由某字串產生。
bcrypt雜湊字串的驗證使用如下程式碼實作。$result = password_verify('original_string', 'hash_string_to_verify');
💡
使用本工具,可以輕鬆進行bcrypt雜湊處理和驗證。