【问题标题】:How do I batch encrypt existing passwords in a MySQL db?如何批量加密 MySQL 数据库中的现有密码?
【发布时间】:2011-10-07 18:44:00
【问题描述】:

我正在为一个客户更新一个网络系统,他的“帐户”表有超过 20,000 个用户,每个用户都有一个纯文本的密码字段,这意味着没有一个密码是加密的。 (我知道,吓人!)无论如何,我需要知道如何获取所有这些密码并轻松加密它们,最好是批量加密,然后将它们导入数据库。我在搜索中找不到太多。我确实看到了 B-Crypt,但它看起来主要用于文件。我对此很陌生,所以任何建议都将不胜感激!谢谢。 :)

【问题讨论】:

    标签: encryption passwords bcrypt


    【解决方案1】:

    这是一种方法。

    UPDATE table_Users
    SET password = EncryptionFunctionYouChoose(password);
    

    编辑 其中“table_Users”是保存密码的表,“password”是密码的列名。 结束编辑

    虽然更好的想法是使用单独的盐值而不是加密来散列每个密码。 (我的看法)

    【讨论】:

      【解决方案2】:

      据我所知 MySQL 不提供内置的 B-CRYPT 功能。 Refer。如果你只是想通过使用 MySQL 查询来解决这个问题,你可以这样做

      update users set password = SHA2(password, 256);
      

      但是,如果您确实喜欢 BCrypt,我想您将不得不在应用程序级别进行。

      关于在数据库中存储密码的讨论总是很有趣。见this list

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-24
        • 2011-06-30
        • 2023-04-08
        • 2019-07-01
        • 2011-10-29
        • 1970-01-01
        • 2014-08-28
        • 1970-01-01
        相关资源
        最近更新 更多