Shiro提供了更好封装,更好使用的加密算法API,可以作为平时使用的一个工具类的预选方案。

Shiro的密码学

基本特性

  接口驱动,基于POJO

  对JCE(Java Cryptography Extension)的简单封装

  面向对象的加密概念

加密特性

  接口默认实现

  内置Hex和Base64转换

  内置加盐和散列支持

编码/解码

@Test
public void testBase64(){
String str = "hello";
String base64Encoded = Base64.encodeToString(str.getBytes());
String str2 = Base64.decodeToString(base64Encoded);
Assert.assertEquals(str,str2);
} @Test
public void testHex(){
String str = "hello";
String base64Encoded = Hex.encodeToString(str.getBytes());
String str2 = new String(Hex.decode(base64Encoded.getBytes()));
Assert.assertEquals(str, str2);
}

散列算法

普通用法

@Test
public void testMd5(){
String str = "hello";
String salt = "123";
String md5 = new Md5Hash(str, salt).toString();
System.out.println(md5);
} @Test
public void testSha256(){
String str = "hello";
String salt = "123";
String sha1= new Sha256Hash(str, salt).toString();
System.out.println(sha1);
} @Test
public void testSimpleHash(){
String str = "hello";
String salt = "123";
String simpleHash= new SimpleHash("SHA-1", str, salt).toString();
System.out.println(simpleHash);
}

高级用法,提供更多可配置项

最新文章

  1. 如何用ZBrush快速绘制身体
  2. mysql基于init-connect+binlog完成审计功能
  3. SQL sp_executesql【转】
  4. python3 入门 (四) 类与继承
  5. 调试工具GDB详解
  6. C# 构造函数中调用虚方法的问题
  7. 使用jQuery验证用户名是否存在,达到局部刷新的效果
  8. E/Trace: error opening trace file: No such file or directory
  9. java 包之 BeanUtils包的使用
  10. 畅通工程续(dijskra+SPFA)
  11. SpringSecutiry权限管理手册
  12. 蓝牙4.0BLE cc2540 cc2541 ios OAD课程(空中固件升级)[原版的,多图]
  13. yarn的调度器
  14. 你可能没听过的11个Python库
  15. Numpy 基本除法运算和模运算
  16. VS Code设置中文插件
  17. 删除掉str上下两行的空白字符(strip())
  18. 操作Wifi的工具类
  19. 4:7 Struts实现Ajax
  20. Qt初学——我的第一个UI

热门文章

  1. django中常见命令总结
  2. linux设备驱动第三篇:写一个简单的字符设备驱动
  3. JetBrains.dotPeek
  4. JumpServer堡垒机安装笔记
  5. The life-saving straw
  6. Java业务代理模式~
  7. web自动化,selenium 无法清空输入框默认值继续输入
  8. JavaScript的日期对象
  9. 记录一次kibana启动Unable to fetch data from reporting collector
  10. Python之字符串转换为日期、结合时区的日期操作