我有一个表格可以保存我的用户信息,如用户名,密码,姓名,家庭等等,当用户在我的网站注册时,她的密码哈希值只有一个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但在我的代码中删除了它以进行汇总:)
答案 0 :(得分:2)
只需将其作为单个查询运行:
UPDATE `members` SET `password`=MD5(MD5(`password`))
BTW双MD5没用。如果你想要更好的安全性,你可以使用MD5 +盐或SHA1 +盐。