2012-06-18 125 views
0

我的数据库中的密码现在是文本,我只是想知道我可以使用md5()函数将密码转换为哈希值,但现在我想将数据库中的所有用户转换为哈希值要做到这一点,所以我不应该要告诉大家重新输入自己的密码,将密码转换为哈希值PHP

这个问题是不与任何其他问题一样Convert text passwords in database to hashed passwords?重复的,因为我想知道一个想法如何做到这一点在PHP和Secure hash and salt for PHP passwords也不重复,因为我想更改已存在于我的数据库中的所有密码我不应该要求我的所有用户更改他们的密码,如上所述,

任何想法?

+1

不要使用'md5',使用其他类似'whirlpool'的东西。有太多的彩虹表可用于'md5',以及其他问题。 – Brad

+0

@Brad Ok将会这样做,但我想要一个想法来转换已存在于数据库中的所有密码 – thegrede

+5

创建一个新列。将列A中的所有密码转换为列B中的加密字符串。目视检查表以确保列A没有任何加密密码。将列B重命名为“列A”,并将列A重命名为“列Z”。在删除Z列前等待几个星期,以确保所有事情都能顺利进行。谴责自己首先不使用加密密码。 – Blazemonger

回答

1

所有你需要为你的例子做的是通过散列运行每个密码(我推荐它不是md5,因为那个现在已经知道了弱点)并且存储回散列。然后,当有人尝试登录时,取出他们的密码并将其散列,然后将散列与您在数据库中的散列进行比较。如果您当前存储明文,则不必要求用户租用任何内容,只需散列您已有的内容即可。