Spring Security BCryptPasswordEncoder已插入但不匹配

问题描述 投票:0回答:1

我在Spring MVC上开发了一个小项目。该项目具有帐户表,帐户具有BCryptPasswordEncoder的编码密码。我使用java配置而不是XML配置。

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter 
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

我获取用户信息并对密码进行编码。

@Autowired
    private PasswordEncoder passwordEncoder;

    String pass=user.getPassword();
    user.setPassword(passwordEncoder.encode(pass));

最后,即使我用123密码它编码它,但是,

boolean passstate=pe.matches(pass, user.getPassword());

返回false

java spring spring-mvc security password-encryption
1个回答
0
投票

一个常见错误,“密码”列(用户表)的长度小于60,例如,密码VARCHAR(45),并且某些数据库将自动截断数据。因此,您始终会收到警告“编码密码看起来不像BCrypt”。

要解决此问题,请确保“密码”列的长度至少为60。

有关详细信息,请查看:https://www.mkyong.com/spring-security/spring-security-encoded-password-does-not-look-like-bcrypt/

© www.soinside.com 2019 - 2024. All rights reserved.