我必须将一个非常旧的应用程序从使用PHP 5.4的旧服务器传输到具有PHP 5.6版本的服务器。
使用PHP crypt()
函数在PHP版本5.4.39的服务器上输出数据时如下所示:
$2a$08$suUW14s06.5.us82.$$$$.iOPijt4Dzhwyw.2
哪个是对的。 PHP版本为5.6.16的服务器输出:
$2a$08$suUW14s06.5.us82.$
代码和输入数据完全相同。它看起来只是输出前置盐,而不是散列的给定值?
这是散列函数:
function hash($string)
{
return crypt($string, '$2a$08$' . ENCRYPTION_SALT . '$');
}
ENCRYPTION_SALT是17个字符长的字符串:
zgUo92vv6.9.ww33.