2

我正在使用以明文形式存储密码的遗留应用程序。我已将应用程序移植到 spring 3 mvc + security。我还成功地让 spring security 使用 sha256 + 基于用户名的 salt 处理身份验证和授权。这一切都很好,但是作为部署的一部分,我需要迁移现有的数据库以使用新的密码模式。我不确定 Spring Security 如何使用盐对密码进行哈希处理,因此我无法编写可用于将旧的明文密码迁移到新的 sha256+salt 模式的 sql 脚本。有没有我可以用来解决这个问题的文档或资源?

4

2 回答 2

9

这记录在BasePasswordEncoder

生成的密码将采用password{salt}.

因此,在您的情况下,您可以使用以下简单代码计算加盐密码:

new ShaPasswordEncoder(256).encodePassword(oldPassword, randomSalt)

注意:ShaPasswordEncoder扩展BasePasswordEncoder.

于 2012-01-24T19:56:31.050 回答
0
  1. 如果您使用默认密码编码,那么源代码似乎很有用。(选择适合您使用的版本的分支)。
  2. 您可以实现自己的 PasswordEncoder 并定义盐的使用方式。
于 2012-01-24T19:51:45.330 回答