0

大家好,我最近开始使用

$salt = $uniqueSalt;

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

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

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

4

2 回答 2

3

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

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

  • 大多数用户不会喜欢这个
  • 您必须跟踪哪些用户进行了更改,哪些没有进行更改。这是为了防止登录时出现问题。
于 2012-05-07T18:19:26.400 回答
0

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

但正如我的前传者所说,它并不安全,如果密码在您的数据库中已经不是纯文本,如果它已经过哈希处理,您可能不会将其作为纯文本获取

于 2012-05-07T18:19:27.123 回答