【问题标题】:Convert password into hashes PHP将密码转换为哈希 PHP
【发布时间】:2012-06-20 21:58:22
【问题描述】:

我的数据库中的密码现在是文本,我只是想我可以使用 md5() 函数将密码转换为哈希值,但现在我想将数据库中的所有用户都转换为哈希值所以我不需要告诉每个人重新输入他们的密码,

此问题与Convert text passwords in database to hashed passwords? 等任何其他问题均不重复,因为我想知道如何在 PHP 中执行此操作,Secure hash and salt for PHP passwords 也不重复,因为我想更改所有已存在的密码我的数据库我不应该像上面所说的那样要求我的所有用户更改他们的密码,

有什么想法吗?

【问题讨论】:

  • 不要使用md5,使用其他类似whirlpoolmd5 可用的彩虹表太多了,还有其他问题。
  • @Brad Ok 会这样做,但我想要一个想法来转换数据库中已经存在的所有密码
  • 创建一个新列。将 A 列中的所有密码转换为 B 列中的加密字符串。目视检查表以确保 A 列没有任何加密密码。将 B 列重命名为“A 列”,将 A 列重命名为“Z 列”。在删除 Z 列之前等待几周,这样您就可以首先确保一切正常。责备自己一开始就没有使用加密密码。
  • 更新XXX设置密码=md5(密码);但我不推荐它。

标签: php database passwords


【解决方案1】:

对于您的示例,您所要做的就是通过散列运行每个密码(我建议不要使用 md5,因为它现在已经知道弱点)并将散列存储回来。然后当有人尝试登录时,获取他们的密码并对其进行哈希处理,然后将哈希值与您在数据库中的内容进行比较。如果您当前存储明文,则不必要求用户租用任何内容,只需散列您已有的内容即可。

【讨论】:

    【解决方案2】:

    Md5 加密不安全,但我已为您加密。

    password_hash() example using Argon2i
    
    <?php
    echo 'Argon2i hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 2017-06-23
      相关资源
      最近更新 更多