我正在用PHP制作一个登录系统,我想知道我当前的这个哈希函数是否足够安全。
public function genHash( $user, $pass )
{
$user = strtoupper($user);
$staticSalt = $this->staticSalt;
$dynamicSalt = hash('SHA512', md5($user . $pass) . sha1($pass) . hash('SHA512', $user . $pass));
$final = hash('WHIRLPOOL', $pass . $dynamicSalt . $staticSalt);
return $final;
}
静态盐只是一堆随机字符。无论如何,我怎样才能让它更安全?
您可以为每个用户使用不同的盐并将它们存储在数据库中,但除此之外,该系统看起来非常安全。(不知道服务器的详细信息)。
编辑:
从理论上讲,对字符串进行多哈希处理会增加哈希冲突的机会,但我还没有找到任何可靠的方法表明这是一个实际风险。