我有一个表,其中保存了我的用户信息,例如用户名、密码、姓名、家庭等。当用户在我的网站中注册时,她的密码会使用一个 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,但在我的摘要代码中删除了它:)
最佳答案
只需将其作为单个查询运行即可:
UPDATE `members` SET `password`=MD5(MD5(`password`))
顺便说一句,双 MD5 没有用。如果您想要更好的安全性,可以使用 MD5 + salt 或 SHA1 + salt。
关于php - 更新包含大约 50000 条记录的表的所有行上的特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888129/