[英]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.