在密码_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;
这样安全吗?
答案 0 :(得分:0)
基本上,如果您可以为同一输入获得相同的输出,则可以认为基于密码的密钥派生函数是安全的。请注意,不同的实现可能会以不同的方式处理字符编码(即使是在Java和C#等主要平台上也是如此),因此请使用您允许的所有字符进行测试或查阅文档或源代码。
我不会进入旁道攻击,因为大多数KDF的实施都不考虑它们。