Java spring 在将管理员密码存储到数据库之前引导加密?

Java spring boot encrypt admin password before storing it in database?

我需要在数据库中初始化一个管理员用户,因为注册一个新帐户需要管理员权限。问题是当我启用加密(加密所有注册用户密码)时,它还尝试解密初始化的管理员密码和 returns 错误:

Encoded password does not look like BCrypt

我想我可以在将初始化的管理员密码存储到数据库之前以某种方式对其进行加密 (MySQL)。但我不确定如何去做。有什么建议吗?

目前,我正在使用 SQL 查询使用管理员用户初始化数据库。

恕我直言,我不确定 MySQL 是否有 default BCrypt encryption function。我猜你已经在你的机器上安装了 bcrypt,你正在使用它来加密密码。如果是这样的话,我不建议使用数据库级加密。

我认为数据库级加密的另一个问题是,您传递到数据库的数据可能最终存储在数据库日志或服务器日志中。因此,您可能会失去密码的机密性。

如果我必须设计系统,我可能会选择应用程序级加密并让 Spring-Boot 应用程序来处理它。

在这种情况下,您应该直接在数据库中用加密的密码覆盖旧的普通保存密码。或者根据新规则删除并重新创建您的帐户

要做到这一点,您可以像这样输入您的网站密码 https://www.browserling.com/tools/bcrypt 将 round 设置为 10(这是 Spring bean 默认使用的值) 它会给你加密的密码。只需将其替换为 DB