【发布时间】:2014-10-08 17:22:40
【问题描述】:
我正在写一个供个人使用的网站(我希望但不认为有人会来那里),并开发了以下算法:
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(pass) 并完成),但是可以访问数据库的人很容易能够反向散列它。这样一来,我认为您无法对这件事进行反向哈希。
【问题讨论】:
-
一如既往地处理这些事情:失败。不要重新发明轮子。
-
散列算法应该是安全的吗?我认为他们只是应该执行哈希而不是某种类型的加密。
-
这是彻底不安全的。
-
@j08691:是的;在 Wikipedia 上阅读有关加密哈希的信息。
-
没有人需要看过去的标题。如果您必须询问 Stack Overflow 您设计的算法是否安全,那不是。事实上,如果博士生没有来您向您询问有关安全性的建议,那么您设计的任何东西都不可能是安全的。