关于Security密码MD5和sha1的问题

Blade 未结 2 1495
tjbaike
tjbaike 剑圣 2020-12-17 00:32

一、该问题的重现步骤是什么?

  1. 现在要进行一个模拟登陆,只有用户名,于是想通过用户名可以查到数据库中二次加密的密码进行解密,再模拟输入账号密码的方式进行登陆系统

  2. 但是发现这个MD5+sha1加密后的密码无法解密,所以考虑更改密码的加密方式



二、你期待的结果是什么?实际看到的又是什么?


1.库里直接保存明文密码【不需要考虑安全性】

2.登陆的时候,输入admin,admin后,把前台的md5加密已经去除了,后台应该怎么修改才会直接去库里进行验证,而不是进行

sha1(password)的操作

3.如果后台想修改sha1(password)为Base64.encode(password),使用可以解密的加密方式,该修改哪里


springcloud 2.5 release win10操作系统

2条回答
  • 2020-12-17 09:45

    image.png

    我找到一种解决方案了,后台改成无加密规则,所有加密都在前台处理,传给后台直接去数据库比对,这样就可以控制加密规则了,作者如果还有其他方案,也麻烦给我们提供一下,非常感谢

    0 讨论(0)
  • 2020-12-17 15:33

    密码必须是不可逆的加密,数据库必须存加密后的密码,加密必须要有后端做最后一层校验。

    只有用户名就可以登录,这个需求从安全性角度考虑就是不行的,因为别人可以靠猜来登录。

    如果一定要这么做,那么推荐拓展一个TokenGranter,只需要用户名就可以登录,不需要改以前的代码逻辑。遇到只需要用户名登录的场景时,指定这个grante_type就行了

    0 讨论(0)
提交回复