簡體   English   中英

php MD5中的密碼散列

[英]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 對密碼進行散列?

你如何使用 bcrypt 在 PHP 中散列密碼?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM