C
千草工具
🔑 雜湊

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雜湊處理和驗證。