对明文密码进行加密是当前软件项目安全必须做的一步,而shiro作为安全框架为密码加密提供了多种配置方式。md5盐值加密是其中一种加密方式。
md5一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
而盐值可以由开发者自行设定,这样大大降低了密码被破译的可能性。
1. 重写doGetAuthenticationInfo方法,编写加密验证的逻辑代码
//密码加密验证
//credentialsSalt: 盐值,这里我使用的是用户名,也可以用系统当前时间或其他
ByteSource credentialsSalt = ByteSource.Util.bytes(user.getName());
//Shiro会将用户输入的密码先进行MD5盐值加密再进行比较
return new SimpleAuthenticationInfo(user,user.getPwd(),credentialsSalt,getName());
SimpleAuthenticationInfo方法的源码:
public SimpleAuthenticati