[英]Password hashing in php MD5
谁能告诉我这有什么问题吗?
function hashmyshit($pass){
for ( $i = 0; $i < 1000; $i++ ){
MD5($pass);
}
return $pass;
}
以及如何多次迭代密码散列过程。
你应该使用:
$pass = md5($pass);
代替
MD5($pass);
但事实上,你想达到什么目的? 为什么要在 md5 已经完成的字符串上多次执行 md5? 目的是什么? 如果您只是想安全地加密密码,您应该使用password_hash()函数选择用户更好的加密方法。
多次使用相同的加密功能甚至可能导致攻击者更容易进入您的系统,因此您不应该这样做。
因此,如果您想对密码进行 1000 次散列,那么您可以这样做:
function hashmyshit($pass){
$password = $pass;
for ( $i = 0; $i < 1000; $i++ ){
$password = md5($password);
}
return $password;
}
以前,您试图将相同的$pass散列 1000 次。 但正如@Marcin Nabiałek 所说,这不是保护密码的适当方法,您应该使用内置加密。
我强烈避免使用 MD5,因为在算法中发现了许多加密弱点,并且出于其他明显的原因,Philipp 在下面的帖子中详细说明了这些原因;
https://security.stackexchange.com/questions/52461/how-weak-is-md5-as-a-password-hashing-function
试试BCrypt
Andrew Moore 在这篇文章中解释了如何在 PHP 中使用 bcrypt 对密码进行散列?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.