shiro框架中使用SimpleHash加盐进行密码加密的过程
本次写的内容不是shiro框架怎么计算hash值的,仅仅是进行使用、
首先声明,本次的加盐的加密方法是不可逆的。
首先引入包。
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
第一个为shiro中的简单哈希的类,
第二个为shiro中的获取字节数组的类。
下图为本次要使用到的SimpleHash的构造器。四个参数,分别
algorithmName代表进行加密的算法名称、
source代表需要加密的元数据,如密码、
salt代表盐,需要加进一起加密的数据、
hashIterations代表hash迭代次数。
测试代码如下、
测试中加的盐salt就是用户的姓名。
public class PasswordHelper {
private String algorithmName = "md5";
private int hashIterations = 2;
public void encryptPassword(UserEntity user) {
String newPassword = new SimpleHash(algorithmName, user.getPassWord(),
ByteSource.Util.bytes(user.getUserName()), hashIterations).toHex();
user.setPassWord(newPassword);
}
/**
* 测试使用
*/
public static void main(String[] args) {
PasswordHelper passwordHelper = new PasswordHelper();
UserEntity user = new UserEntity();
user.setUserName("潘亚茹");
user.setPassWord("123456");
passwordHelper.encryptPassword(user);
System.out.println(user);
}
}
输出数据如下、
userName=潘亚茹, passWord=0fd20118436982b58e93a61771c61d01
附坐标:
<!-- cas-shiro -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-cas</artifactId>
<version>1.2.4</version>
</dependency>
还没有评论,来说两句吧...