我在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
一个常见错误,“密码”列(用户表)的长度小于60,例如,密码VARCHAR(45),并且某些数据库将自动截断数据。因此,您始终会收到警告“编码密码看起来不像BCrypt”。
要解决此问题,请确保“密码”列的长度至少为60。
有关详细信息,请查看:https://www.mkyong.com/spring-security/spring-security-encoded-password-does-not-look-like-bcrypt/