我正在写一个供个人使用的网站(我希望但不要认为有人会来这里),并开发了以下算法:
function encryptPassword($username, $password) {
$username=md5($username);
$password=md5($password);
$newpass = substr($username, 0, 5) . $password . substr($username, 5 );
$newpass = md5($newpass);
return $newpass;
}
Run Code Online (Sandbox Code Playgroud)
因为它仍然是一种"知道密码而你是'那种系统(尽管如此),我认为在数据库中隐藏密码会更好.
我以前使用过简单的MD5x1算法(基本上是:md5(传递)并完成)但是那些有权访问数据库的人很容易就能反向散列它.这样我认为你无法反向哈希这个东西.
不是.
以上解决方案:
哦等等,已经有一个内置在PHP中的整个库来执行此操作,除非方法更好.这是password_hash()
,如果你正在使用PHP的版本早于5.5,当它被实施有password_compat
其反向移植它早在5.3.7,如果这仍然不工作,你真的需要升级你的PHP安装.
最后,除非你在密码学方面接受过大学教育,否则你不应该试图"推出自己的"哈希或加密方案.99%的情况下,如果您使用的是行业标准,那么您的系统安全性会大大降低.
归档时间: |
|
查看次数: |
92 次 |
最近记录: |