【发布时间】:2015-08-07 07:16:36
【问题描述】:
在以下代码中使用密码“testtest”和哈希“KFtIFW1vulG5nUH3a0Mv”会产生不同的哈希,具体取决于 PHP 版本(如下图所示):
$salt = "KFtIFW1vulG5nUH3a0Mv";
$password = "testtest";
$key = '$2a$07$';
$key = $key.$salt."$";
echo crypt($password, $key);
输出 1(PHP v.5.3.0 - 5.4.41、5.5.21 - 5.5.25、5.6.5 - 5.6.9):$2a$07$KFtIFW1vulG5nUH3a0Mv$.0imhrNa/laTsN0Ioj5m357/a8AxxF2q
输出 2(PHP v.5.5.0 - 5.5.20、5.6.0 - 5.6.4):$2a$07$KFtIFW1vulG5nUH3a0Mv$e0imhrNa/laTsN0Ioj5m357/a8AxxF2q
这是一个问题的例子: http://3v4l.org/dikci
如果使用 crypt 对登录密码进行哈希处理,这是一个大问题,因为根据 PHP 版本,哈希值会有所不同。有谁知道这个问题是从哪里来的以及如何处理的?
【问题讨论】:
-
define "取决于 PHP 版本" 并阅读手册php.net/crypt
-
看一下附图,某些PHP版本输出的结果与其他版本不同。我现在将添加详细信息。
-
我在高分辨率;很难看到它;需要眯眼
-
已编辑以包含版本
-
看看这是否回答了它codechewing.com/library/…