使用“ircmaxell - password_compat”库错误地散列结果

时间:2014-05-19 23:26:01

标签: php hash passwords

我尝试使用this project

时遇到问题

这个

<?php

require_once("lib/password.php");

echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";
echo password_hash("how_are_you", PASSWORD_BCRYPT) . "<br/>";

给了我:

$2y$10$7Tv8qkqYByD6XOy1ZVh97OfqrZmeVGxkK1KAtOQOQQvotLY6YsLPm
$2y$10$UlV2D6cSiN1OxZhwPwTdq.le/bI2p1ZPAi0s6ZZALR2OIjxiKSXBi
$2y$10$mdEfoCiAM83gfM3dkdSID.oPPsdWCszDiN3CxiaC4htALeDIb34tO
$2y$10$TOrANsMbfWEdA6asD//yYuA4.fckGHxnFgg0EmC8vPI6.hcfjrKZ.
$2y$10$itBEZCBZzkxunZmamRzjiu8YtM0H71pADPDVwomLep/DSHHdRmd16
$2y$10$xV8fQhFw/v3NBnMvgHw8P.eaIL/1oEdZ2/gx4QmC.CNT.5hG5LQc2
$2y$10$XXdEEhSxfwH6f6OBIKSScOa0JRhe4kaKphWfHOct/nbbw1JjFkO3y
$2y$10$RXGVYn5KcWB.O0Owv8fk0e.LDcZn2RhgoE4Q3fFjnNL6tLYk8Chj6
$2y$10$R62hVVqydGW0raQR5O2QW.BEaMIrdpXgPBbKH9OKIHh2e0Cwtd//u
$2y$10$I0Kf8JHpTb5QbYoUssTBP.Hch4dZWdmL.CGzgKYf4cpGfHIL6vuWa

然而,结果应该是相同的。

环境:

  • Wampp Server(在Windows上)
  • Apache:2.4.4
  • PHP:5.4.12

1 个答案:

答案 0 :(得分:2)

不,结果 不应该 是相同的,因为每次出现都使用 不同的 < strong> salt ,这是使其更难破解的功能之一,因为每个用户密码和每个重置密码都有不同的盐值。这使得几乎不可能使用彩虹表来强制密码

这就是为什么你使用password_verify()来匹配用户输入的密码和存储的密码,而不是再次重复使用password_hash()