txt
文件吗?
txt
文件吗?
让我们通过别人告诉你的例子来学习:
$options = [
'cost' => 11,
'salt' => 'abcdefghijklmnopqrstuv',
];
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT, $options)."\n";
输出:
$2y$11$abcdefghijklmnopqrstuu7aZVUzfW85EB4mHER81Oudv/rT.rmWm
加粗的部分是计算成本和盐,它们嵌入在生成的哈希中。
您可以将其传回password_verify
,它会相应地处理它:
print_r(password_verify('rasmuslerdorf', '$2y$11$abcdefghijklmnopqrstuu7aZVUzfW85EB4mHER81Oudv/rT.rmWm')); // true
因此,在您保存在数据库中的哈希值中已经包含了盐值。使用的算法、成本和盐值都将作为哈希的一部分返回。 因此,验证哈希所需的所有信息都已包含在其中。这使得password_verify()函数可以验证哈希而无需单独存储盐值或算法信息。