我正在写一个供个人使用的网站(我希望但不要认为有人会来这里),并开发了以下算法:
function encryptPassword($username, $password) {
$username=md5($username);
$password=md5($password);
$newpass = substr($username, 0, 5) . $password . substr($username, 5 );
$newpass = md5($newpass);
return $newpass;
}
因为它仍然是一种'知道密码而你是'那种系统(尽管如此),我认为在数据库中隐藏密码会更好。
我以前使用过简单的MD5x1算法(基本上是:md5(传递)并完成)但是那些有权访问数据库的人很容易就能反向散列它。这样我认为你无法反向哈希这个东西。
答案 0 :(得分:5)
不是。
上述解决方案:
哦等等,已经有一个内置在PHP中的整个库可以做到这一点,除了方式更好。它是password_hash()
,如果你使用的是早于5.5的PHP版本,那么password_compat
可以将它向后移植到5.3.7,如果那么仍然不起作用你真的需要更新你的PHP安装。
最后,除非你在密码学方面接受过大学教育,否则你绝不应该尝试“推出自己的”哈希或加密方案。 99%的时间你最终得到的安全系统远远低于使用符合行业标准的系统。