假设我们在数据库中有一个盐,并且已经像这样生成
$salt = time();
这两条线有什么区别。
$pass1 = hash('sha1', $password . $salt);
$pass2 = hash_hmac('sha1', $password, $salt);
它们不会产生相同的输出。第一个,该hash
函数需要 2 个参数,而hash_hmac
需要 3 个参数。因此,您会认为我们可以通过使用$salt
单独的(以实现第三个参数)而不是像我们在第 2 行中那样将其与密码 ( $password . $salt
) 连接来获得第三个额外参数。但这并不是那么简单,两个结果是不同的。为什么?这里到底发生了什么?