关于加密密码的 Spring Security 问题

Posted

技术标签:

【中文标题】关于加密密码的 Spring Security 问题【英文标题】:Spring Security issue on encrypted password 【发布时间】:2014-05-24 02:04:12 【问题描述】:

我对 SpringSpringSecurity 很陌生。 我在我的数据库中有存储用户及其密码的表。 (Postgresql 数据库)。每次在我的表中插入一条新记录时,我都有一个使用 md5 算法加密密码的触发器。在我的应用程序中,我使用 Spring,并尝试使用 SpringSecurity 3.2 模块。我提供了自己的UserDetailsService 服务。问题是我不知道在这种情况下我应该怎么做才能使身份验证成功。我认为由于密码存储在数据库 md5 算法中,spring 无法对用户进行身份验证。有没有人对我该怎么做有任何建议。

如果您需要任何代码示例,请向我索取。

【问题讨论】:

【参考方案1】:

我认为 spring 无法对用户进行身份验证是因为 密码是用数据库md5算法存储的

你是对的。您的解决方案导致数据库中的密码被加密,但是当用户尝试登录时,他输入了他的密码,然后 Spring(我猜是 Spring,对吗?)尝试在数据库中比较它.所以Spring比较明文和加密,结果失败了。

解决方法是在登录时对用户输入的密码进行加密,然后在数据库前进行比较。

Spring有in their DOCS几个例子。

这里:How to use new PasswordEncoder from Spring Security

【讨论】:

以上是关于关于加密密码的 Spring Security 问题的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security PasswordEncoder 密码校验和密码加密

Spring Security-用户密码自定义加密

Spring Security学习——密码加密

Spring Security学习——密码加密

spring security 5.0 密码未加密报错

spring security使用哈希加密的密码