0
点赞
收藏
分享

微信扫一扫

Shiro——简单的MD5加密

花海书香 2022-02-03 阅读 59

MD5

单向的加密:只能由目标得到加密的结果,不能反推。
盐值:给解密加点难度,同一个值不同的盐,结果不一样。
迭代次数:对结果重复加密。

小案例

@Test
public void f3() {
	Md5Hash md5 = new Md5Hash("123456");
	System.out.println(md5.toString());
	md5 = new Md5Hash("123456", "aaa");
	System.out.println(md5.toString());
	md5 = new Md5Hash("123456", "aaa", 1024);
	System.out.println(md5);
}

运行结果:

e10adc3949ba59abbe56e057f20f883e
88316675d7882e3fdbe066000273842c
b8d63fc060e2b5651e8cb4e71ba61e6f

引入Shiro

简单的方式是代码指定,在传入密码的时候套一层:

@Test
public void f4() {
	MyRealm realm = new MyRealm();
	DefaultSecurityManager sm = new DefaultSecurityManager(realm);
	SecurityUtils.setSecurityManager(sm);

	Subject s = SecurityUtils.getSubject();
	UsernamePasswordToken token = new UsernamePasswordToken("abc", md5("123456"));

	s.login(token);

	System.out.println(s.isAuthenticated());
}

public String md5(String input) {
	return new Md5Hash(input, "aaa", 1024).toString();
}

然后把数据库中也改一下:
在这里插入图片描述
运行效果:
在这里插入图片描述

举报

相关推荐

0 条评论