建议使用
mhash函数从string.创建密钥。
但是mhash手册上说:
注意:这个扩展被Hash淘汰了。
然而,我所能找到的最接近于非常有用的mhash_keygen_s2k()函数是hash_pbkdf2()函数。但是,我甚至不确定它是否适合这个工作,因为它只存在于SVN中。
所以,我是否可以依赖mhash扩展,或者它最终会被废弃和删除?如果是的话,是否有任何替代的内置函数,或者我必须自己实现盐渍S2K算法?
发布于 2012-10-09 20:57:40
最后,我偷看了m散列源代码,将其移植到PHP:
function keygen_s2k($hash, $password, $salt, $bytes)
{
$result = false;
if (extension_loaded('hash') === true)
{
foreach (range(0, ceil($bytes / strlen(hash($hash, null, true))) - 1) as $i)
{
$result .= hash($hash, str_repeat("\0", $i) . str_pad(substr($salt, 0, 8), 8, "\0", STR_PAD_RIGHT) . $password, true);
}
$result = substr($result, 0, intval($bytes));
}
return $result;
}如果有人知道任何可供选择的内置功能,我还是想听听。
https://stackoverflow.com/questions/12805393
复制相似问题