由于原来写项目的时候,也是用网上一些方案,采用的嵌套md5加密算法
现在呢,先采用混合加密算法(比如:sha(md5(xxx)))这种方式
上午追了一上午的源码,通过入口
subject.login
一直追踪到密码匹配,因为我想找到用户传递过来的密码,shiro拦截后进行加密后,我再进行一层加密
于是乎,追踪到下面的方法

这是判断:加密后的密码与数据库保存的加密密码是否一致
我当时就是想要重写这个方法,然后在这里对 tokenHashedCredentials sha(xxx)加密
不过这里我重写后,依然没有跳入我重写的这个方法(不过这个在修改shiro的匹配规则是有用的)
比如你想要改写shiro默认的验证规则,你就需要重写这个方法,我这里使用的是springboot2.0,
感觉应该是没有将该类注入啥的,也就不去找相应的问题原因了
中午一觉醒来,突然来了灵感,如果想要混合加密的话
首先可以在下图中的密码位置,添加一层数据加密
![]()
第一层加密之后,才会通过shiro的配置加密(也就是第二层加密)
而这时,数据库里面存储的也是二次加密之后的密码,此时可以完成正常的复杂加密算法
博客围绕项目中的加密算法展开,原本采用嵌套md5加密,现尝试混合加密如sha(md5(xxx))。作者追踪shiro源码到密码匹配处,想重写方法进行额外加密但未成功。后来灵感突发,提出在密码位置先加一层加密,再经shiro配置加密,让数据库存二次加密密码以实现复杂加密。
1247

被折叠的 条评论
为什么被折叠?



