2010-07-27 28 views
0

我继承了一个拥有大量用户群的网站。我的客户正在更新他们的记录,我需要将大约900个用户的预定密码导入到一个mysql表中。我输入的行似乎加密了密码,如果我通过php前端输入密码的话。我可以使用phpMyAdmin将所有密码导入到表格中,但是当我测试它们时,它们不起作用,因为它们处于未加密格式。在将密码导入我的表之前,有没有办法对密码进行加密?初始用户密码导入到MYSQL

回答

1

这不是100%清楚你的问题,但我会假设你的密码存储在MySQL加密的列中。

为了在导入它们之前“加密密码”,您必须弄清楚正在使用哪种加密算法。这将涉及查看数据库模式和插入其中的代码,查找执行加密的位置以及识别算法。

完成此操作后,请事先使用相同的算法对密码进行加密。

0

您应该编写脚本以使用应用程序所需的相同加密方法导入密码。

您应该阅读PHP前端的源代码以找出用于加密(或更可能是哈希)密码的方法。在不学习代码的情况下尝试猜测他们的方法是浪费时间。

根据哈希方法的不同,您可能可以将刚刚导入的纯文本密码转换为散列版本,只需使用SQL更新即可。举例来说,如果它的SHA1,那么你可以这样做:

UPDATE accounts SET password = SHA(password) 

这将覆盖其哈希密码。记住哈希是而不是是可逆的,所以在尝试这个之前做一个数据库备份!

我也推荐读无畏领袖You're Probably Storing Passwords Incorrectly

+0

比尔,感谢网站使用的散列方向是md5。我运行密码列上的SQL更新,它工作得很好。谢谢你的帮助。 – pixelJockey 2010-07-27 16:29:02

+0

很高兴为您提供帮助。请记住放弃并选择“接受答案”给帮助你的人。这是一件小事,但这就是Stack Overflow的游戏玩法。 :-) – 2010-07-27 19:03:48

0

解决:

UPDATE SET用户USER_PASSWORD = MD5(USER_PASSWORD)所有用于输入

感谢。