add salt
HashedCredentialMacher macher=new HasedCredentialMatcher();
add salt.
密码生成过程,是通过md5 + 加盐后,计算的结果,在认证解析时候,也就需要加上盐
认证加盐
加密
自定义认证中的处理前端传过来的密码的加盐问题。
设置加密的模式。
Shiro加密:如图,MD5加密后,再加一层盐。。。。。
"Mark"字符串就是加盐字符串。数据库保存的时加盐后的密码。
所以做签名认证的时候,也要做“加盐处理”,如图
33333333
33333333333333
密码加密 加盐(加密后的偏移,防止密码被MD5后的结果反查)
加盐不是直接加到md5的算法中去
shiro加密
setCredentialsSalt设置加盐(在认证对象返回之前)
realm中设置md5加密(算法名称和加密次数)
想看所有笔记和代码的,点我:
https://blog.csdn.net/ranandrun/article/details/86605751#1RealmMyRealm_243
shiro加盐: authenticationInfo.setCredentialsSalt();
shiro加密, 加盐
Shiro加密
通过HashedCredentialsMaster的方式加密,创建对象,并设置加密次数以及加密名称,将此加密对象设置到Realm的setCredentialsMaster的方法中,即该Realm采用此密码加密的方式。
后台的密码采用MD5的Hash码值来存储。如果想将密码转成MD5Hash码可以采用MD5Hash对象,在构造方法中写入密码,
打印输出其对象的toString方法即时期hash码值。
加盐,实际为在密码中加入相应的其他名称拼接在一起,组成一个新的密码。如果想存储加盐之后的Hash码,仍旧采用MD5Hash对象,在构造方法的第二个参数中加入盐的名称,同样打印toString方法即可显示出来。其次在自定义的Realm认证方法中,返回Simple之前,设置Simple的加盐名称,即采用setCredentailSalt方法写入盐的名称即可。
以上两种加密方式,对Realm改动较小,除非加盐才改动。
在自定义的Realm加盐的时候,需要将字符值转成相应的ByteSource,则需要用ByteSource.Util.bytes(字符)即可,将此值设置到Simple的返回值中。
shiro加密
加密操作类
加密加盐操作
shiro加密
Shiro加密
md5加密
加盐
MD5加密
MD5加密,加盐。
Shiro加密