php 在数据库中转换所有密码


php converting all passwords in DB

大家好,最近我开始使用

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

我将如何使用它转换mysql数据库中的所有密码,以免影响用户?

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

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

此外,如果您将密码作为 MD5 哈希存储在数据库中,则无法转换密码。MD5 是单向散列,您无法获取原始密码以应用盐和重新散列。如果您绝对想应用它,那么唯一的方法是强制每个用户更改其密码并在他们这样做时应用新算法。这有两个问题:

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

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

但正如我的海报所说,它并没有更安全,如果密码在您的数据库中不是纯文本,如果它已被散列,您可能不会以纯文本形式获得它