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