我继承了一个拥有庞大用户群的网站。我的客户端正在更新他们的记录,我需要将大约900个用户的一些预定密码导入到mysql表中。如果我通过php前端输入密码,我导入的行似乎加密密码。我可以使用phpMyAdmin将所有密码导入到表中,但是当我测试它们时,它们不能正常工作,因为它们是未加密的格式。有没有办法在将密码导入我的表之前加密密码?
答案 0 :(得分:1)
您的问题并非100%明确,但我会假设您的密码存储在MySQL加密的列中。
为了在导入之前“加密密码”,您必须弄清楚正在使用的加密算法。这将涉及查看数据库模式和插入其中的代码,查找执行加密的位置以及识别算法。
完成此操作后,请提前使用相同的算法加密密码。
答案 1 :(得分:0)
您应该编写一个脚本来使用应用程序所需的相同加密方法导入密码。
您应该阅读PHP前端的源代码,以找出用于加密(或更可能是哈希)密码的方法。在不研究代码的情况下尝试猜测他们的方法是浪费时间。
根据散列方法,您可以将已导入的明文密码转换为散列版本,只需使用SQL更新即可。例如,如果它是SHA1,那么你可以这样做:
UPDATE accounts SET password = SHA(password)
这将用其哈希覆盖密码。请记住哈希不可逆,所以在尝试之前进行数据库备份!
我还建议无畏的领导者阅读You're Probably Storing Passwords Incorrectly。
答案 2 :(得分:0)
解决:
更新用户SET user_password = md5(user_password)
全部感谢您的输入。