- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Shiro 编码加密
Shiro 编码加密
编码/加密
在涉及到密码存储问题上,应该加密 / ⽣成密码摘要存储,⽽不是存储明⽂密码。⽐
如之前的 600w csdn 账 泄露对⽤户可能造成很⼤损失,因此应加密 / ⽣成不可逆的
摘要⽅式存储。
编码 / 解码
Shiro 提供了 base64 和 16 进制字符串编码 / 解码的 API ⽀持,⽅便⼀些编码解码操
作。Shiro 内部的⼀些数据的存储 / 表⽰都使⽤了 base64 和 16 进制字符串。
String str = hello;
String base64Encoded = Base64 .encodeToString(str.getBytes());
String str2 = Base64 .decodeToString(base64Encoded);
Assert.assertEq als(str, str2);nbsp;
通过如上⽅式可以进⾏ base64 编码 / 解码操作,更多 API 请参考其 Javadoc 。
String str = hello;
String base64Encoded = Hex .encodeToString(str.getBytes());
String str2 = new String(Hex .decode(base64Encoded.getBytes()));
Assert.assertEq als(str, str2);nbsp;
通过如上⽅式可以进⾏ 16 进制字符串编码 / 解码操作,更多 API 请参考其 Javadoc 。
还有⼀个可能经常⽤到的类 CodecSupport ,提供了 toBytes(str utf-8) /
toString(bytes utf-8) ⽤于在 byte 数组 /String 之间转换。
散列算法
散列算法⼀般⽤于⽣成数据的摘要信息,是⼀种不可逆的算法,⼀般适合存储密码之
类的数据,常见的散列算法如 MD5、SHA 等。⼀般进⾏散列时最好提供⼀个
salt (盐),⽐如加密密码 “admin” ,产⽣的散列值是
“2 1232f297a57a5a743894a0e4a80 1fc3” ,可以到⼀些 md5 解密⽹站很容易的通过散列
值得到密码 “admin” ,即如果直接对密码进⾏散列相对来说破解更容易,此时我们可
以加⼀些只有系统知道的⼲扰数据,如⽤户名和 ID (即盐);这样散列的对象是 “密
码 + ⽤户名 +ID” ,这样⽣成的散列值相对来说更难破解。
String str = hello;
String salt = 123;
String md5 = new Md5Hash(str, salt).toString();//还可以转换为 toBase
如上代码通过盐 “ 123”MD5 散列 “hello” 。另外散列时还可以指定散列次数,如 2 次表
⽰:md5(md5(str)) :“new Md5Hash(str salt 2) .toString()” 。
String str = hello;
String salt = 123;
String sha1 = new Sha256Hash(str, salt).toString();nbsp;
使⽤ SHA256 算法⽣成相应的散列数据,另外还有如 SHA 1、SHA5 12 算法。
Shiro 还提供了通⽤的散列⽀持:
String str = hello;
String salt = 123;
//内部使⽤MessageDigest
String simpleHash = new SimpleHash(SHA-1, str, salt).toString();
通过调⽤ SimpleHash 时指定散列算法,其内部使⽤了 Java 的 MessageDigest 实现。
为了⽅便使⽤,Shiro 提供了 HashService ,默认提供了 DefaultHashService 实现。
Defa ltHashService hashService = new Defa ltHashService(); //默认算
hashService.setHashAlgorithmName(SHA-512);
hashService.setPrivateSalt(new SimpleByteSo rce(123)); //私盐,默
hashService.setGenerateP blicSalt(tr e);//是否⽣成公
您可能关注的文档
- RGB图像色彩提取与合成.docx
- RG-RSR系列路由器RGNOS10.3(4B3)版本配置指南_第九部分 链路层协议配置指南.pdf
- RIP测试说明.docx
- RIPV2的MD5认证.doc
- RK-5005使用说明书.pdf
- RL电路的自感电动势分析及实验设计研究_杨道生.pdf
- RoHS管理物质分析技术中的制样检测方法.pdf
- ROHS测试仪使用指引.pptx
- Roman-石墨烯片的制备与表征.pdf
- ROS配置及做PPOE服务器.pdf
- 市直机关工委及个人述职述廉2024年党建工作情况报告材料.docx
- 区委书记在2025年一季度经济运行部署会议上的讲话发言材料.docx
- 市直机关单位、卫健委党支部2024年工作述职报告材料.docx
- 市委副书记、市长在2025年市委城乡规划委员会第一次会议上的讲话发言材料.docx
- 某单位领导干部2024年生活会、组织生活会对照检查材料(对照“四个带头”).docx
- 2024年民政局、宣传部、教育局基层主要领导个人述责述廉报告材料.docx
- 2025年2月党支部“三会一课”参考主题方案.docx
- 在某中学2025年春季开学典礼上的讲话:以“三重境界”燃动新学期.docx
- 2024年度领导干部专题民主生活会、组织生活会对照检查材料(四个带头)及学习研讨会上的发言材料.docx
- 市纪委市监委2025年度纪检监察工作计划.docx
最近下载
- 北师大版八年级下册数学期中考试试卷含答案.docx VIP
- 2025年高中语文易出错成语梳理汇总.pdf VIP
- 2022年西安美术学院附属中等美术学校(西美附中)入学招生模拟考试数学.docx VIP
- 2025高考语文一轮复习高中五册教材成语汇总.pdf VIP
- 涂装工考试:初级涂装工题库考点(强化练习).docx VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 历年海关系统国考面试真题汇编 .pdf
- 人教版数学小学五年级下册全册课件(2024年3月修订).pptx
- 《数据可视化 》 课件全套 杨华 第1--9章 数据可视化概述--- 可视化大屏.pptx
- 涂装工考试:初级涂装工.docx VIP
文档评论(0)