使用BCryptPasswordEncoder密码加密入库,输入密码与数据库密码一样,但是校验失败

学习永不打烊 2020-07-13 08:23:39
使用springsecurity的BCryptPasswordEncoder对密码加密入库,登录验证时密码与入库时密码一样,报错Encoded password does not look like BCrypt,什么原因?

String password = passwordEncoder.encode("123456");
boolean matches = passwordEncoder.matches("123456", password);
这样matches为true,没有问题,但是将加密后的password放入数据库再查出来校验,
Admin admin = auAdminDao.selectOne(name);
String password = admin.getPassword();
boolean matches = passwordEncoder.matches("123456", password);
这样matches为false,报错Encoded password does not look like BCrypt,实在搞不懂,请求大神指点。
...全文
5943 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不配编程 2020-12-25
  • 打赏
  • 举报
回复 1
你改好长度了后,再重新生成一次密码“手动”复制到数据库里,第二次用同样的密码登录就不行了,但是注册的时候自动放进去的就可以,好神奇
学习永不打烊 2020-07-15
  • 打赏
  • 举报
回复 1
上面的代码没有问题,只是入库的时候字段长度有所限制,数据库密码与生成的密码不一致导致的,真是搞笑了,各位同学细心细心再细心啊,不怕有问题,就怕问题找不到啊。
hackerc5 2020-07-15
  • 打赏
  • 举报
回复
来学习学习!!!
亦夜 2020-07-13
  • 打赏
  • 举报
回复
https://blog.csdn.net/wx2007xing/article/details/87856630

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧