簡體   English   中英

使用大約50000條記錄更新表的所有行上的特定字段

[英]update a specific field on all rows of a table with about 50000 records

我有一個表,用於保存我的用戶信息,如用戶名,密碼,姓名,家庭等,當用戶在我的網站注冊時,她的密碼哈希與一個md5()函數然后插入表。 我的桌子現在有大約50000條記錄。 但現在我想再次使用兩個md5()函數來散列他們的密碼以解決安全問題。 為此我寫下面的代碼,首先選擇所有用戶,然后執行更新查詢更改密碼:

$allMembers =   mysql_query("select `username`,`password` from `members`",$conn);


if (mysql_num_rows($allMembers) > 0){

    while($row  =   mysql_fetch_array($allMembers)){

            $oldPass    =   $row['password'];

            $newPass    =   md5(md5('Hello'.$oldPass.'Friends'));

            mysql_query("update `members` set `password`='$newPass' where `username`='".$row['username']."'",$conn);
    }
}

echo("Yes");

但是,當我運行此代碼它花了很少,並產生無數據接收消息 但現在我如何更新我的大表中的密碼字段?

編輯 :我使用salt + md5但在我的代碼中將其刪除為Summarization :)

只需將其作為單個查詢運行:

UPDATE `members` SET `password`=MD5(MD5(`password`))

BTW雙MD5沒用。 如果你想要更好的安全性,你可以使用MD5 +鹽或SHA1 +鹽。

暫無
暫無

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

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