php转换DB中的所有密码

时间:2012-05-07 18:15:02

标签: php mysql encryption md5 salt

大家好,我最近开始使用

$salt = $uniqueSalt;

$cryptpassword = md5($salt.$password);

如何用我的mysql数据库转换所有密码,这样才不会影响用户?

我的数据库atm中的密码是纯文本,我想用盐将所有纯文本密码转换为md5

2 个答案:

答案 0 :(得分:3)

我建议您阅读有关盐的更多信息以及如何使用它们。它们不应该是常量字符串,而是每个用户独有的字符串。例如用户名。或者我个人最喜欢的:注册日期(当然,精确度为1秒)。

此外,如果您将密码作为MD5哈希存储在数据库中,则无法转换密码。 MD5是单向散列的一种方式,您无法获取原始密码以便应用salt和rehash。如果您绝对想要应用此功能,那么您可以执行此操作的唯一方法是强制每个用户更改其密码并应用新算法。这有两个问题:

  • 大多数用户不会喜欢这个
  • 您必须跟踪哪个用户进行了更改,哪些用户没有。这是为了防止登录时出现问题。

答案 1 :(得分:0)

就像这样,但你必须改变你的登录,所以你不要检查他们的密码,但是md5($ salt。$ password);

但正如我的forposters所说,它并不太安全,如果密码在您的数据库中已经很明显,那么如果它已被散列,您可能不会将其作为纯文本获取