为什么phpass对相同的输入字符串返回不同的哈希值?


Why does phpass return different hashes for the same input string?

我习惯了哈希算法总是返回相同的哈希值。

为什么phpass库总是返回不同的哈希值?

这和静脉注射有关吗?(我从来没有完全理解过这个概念)

<?php
require __DIR__ . '/PasswordHash.php';
$hasher = new PasswordHash(11,false);
$password = 'bla123';
echo $hash = $hasher->hashPassword($password); // different for each request

根据这一节"如果用户已经存在怎么办?"这是这个库的正常行为

它使用crypt(),它已经为同一个字符串生成了不同的哈希值。它使用不同的密钥对每个密码进行散列,并将密钥存储在散列中(这是公开的)。