关于加密密码的 Spring Security 问题
Posted
技术标签:
【中文标题】关于加密密码的 Spring Security 问题【英文标题】:Spring Security issue on encrypted password 【发布时间】:2014-05-24 02:04:12 【问题描述】:我对 Spring 和 SpringSecurity 很陌生。
我在我的数据库中有存储用户及其密码的表。 (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 问题的主要内容,如果未能解决你的问题,请参考以下文章