可以在PHP 5.3.7中使用crypt()复制password_hash()吗?

时间:2014-03-29 21:07:15

标签: php encryption hash

在密码_hash()中PHP-manual的评论员 - 在PHP 5.5中实现的函数建议,以下代码实际上可以复制算法:

<?php

$salt = mcrypt_create_iv(22, MCRYPT_DEV_URANDOM);
$salt = base64_encode($salt);
$salt = str_replace('+', '.', $salt);
$hash = crypt('rasmuslerdorf', '$2y$10$'.$salt.'$');

echo $hash;

这样安全吗?

1 个答案:

答案 0 :(得分:0)

基本上,如果您可以为同一输入获得相同的输出,则可以认为基于密码的密钥派生函数是安全的。请注意,不同的实现可能会以不同的方式处理字符编码(即使是在Java和C#等主要平台上也是如此),因此请使用您允许的所有字符进行测试或查阅文档或源代码。

我不会进入旁道攻击,因为大多数KDF的实施都不考虑它们。