🔑 哈希
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哈希处理和验证。