4

代码:

echo $a = 'stackoverflow';
echo '<br>';
echo $b = '$2a$10$bf57caf7e1fa23e4b975ab';
echo '<br>CRYPT:<br>';
echo crypt($a, $b);

结果:

PHP 5.2.5

stackoverflow
$2a$10$bf57caf7e1fa23e4b975ab
CRYPT:
$2.LaeiP21fsQ

PHP 5.4.4

stackoverflow
$2a$10$bf57caf7e1fa23e4b975ab
CRYPT:
$2a$10$bf57caf7e1fa23e4b975aOhXjTtYrqOYLfHsxdOxGRhF03.LtKewW 

我想将脚本移动到使用 PHP 5.4.4 的新服务器我想获得与 5.2.5 哈希相同的效果,否则我会丢失一些数据

如果我使用以 $ 结尾的盐 - 结果是一样的

我读到这个:

从 PHP 5.3.0 开始,PHP 包含自己的实现,如果系统不支持一种或多种算法,PHP 将使用它。

但是算法应该没有什么不同。

请帮忙。

4

1 回答 1

1

在 PHP 5.3.0 之前,Blowfish 仅在您的系统的 C 库提供时才可用(几乎没有人提供)。在没有 Blowfish 实现的系统中传递 Blowfish 盐会导致算法选择出现错误——通常是 DES 哈希。

于 2013-02-25T10:16:32.880 回答