4

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

4

2 回答 2

2

这是执行此操作的一种方法。

UPDATE table_Users
SET password = EncryptionFunctionYouChoose(password);

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

尽管更好的主意是使用单独的盐值而不是加密来散列每个密码。(我的意见)

于 2011-07-18T15:17:22.613 回答
1

据我所知,MySQL 不提供内置的 B-CRYPT 功能。参考。如果您只想通过使用 MySQL 查询来解决此问题,您可以执行类似的操作

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

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

关于在数据库中存储密码总是有有趣的讨论。查看此列表

于 2011-07-18T15:21:29.583 回答