shiro salt
来源:互联网 发布:网络共享硬盘ip查看 编辑:程序博客网 时间:2024/05/18 07:59
1.1 散列算法
散列算法一般用于生成一段文本的摘要信息,散列算法不可逆,将内容可以生成摘要,无法将摘要转成原始内容。散列算法常用于对密码进行散列,常用的散列算法有MD5、SHA。分享牛系列,分享牛专栏,分享牛
一般散列算法需要提供一个salt(盐)与原始内容生成摘要信息,这样做的目的是为了安全性,比如:111111的md5值是:96e79218965eb72c92a549dd5a330112,拿着“96e79218965eb72c92a549dd5a330112”去md5破解网站很容易进行破解,如果要是对111111和salt(盐,一个随机数)进行散列,这样虽然密码都是111111加不同的盐会生成不同的散列值。分享牛系列,分享牛专栏,分享牛
1.1.1 例子
//md5加密,不加盐String password_md5 = new Md5Hash("111111").toString();System.out.println("md5加密,不加盐="+password_md5);//md5加密,加盐,一次散列String password_md5_sale_1 = new Md5Hash("111111", "eteokues", 1).toString();System.out.println("password_md5_sale_1="+password_md5_sale_1);String password_md5_sale_2 = new Md5Hash("111111", "uiwueylm", 1).toString();System.out.println("password_md5_sale_2="+password_md5_sale_2);//两次散列相当于md5(md5())//使用SimpleHashString simpleHash = new SimpleHash("MD5", "111111", "eteokues",1).toString();System.out.println(simpleHash);
1.1.2 在realm中使用
实际应用是将盐和散列后的值存在数据库中,自动realm从数据库取出盐和加密后的值由shiro完成密码校验。
1.1.2.1 自定义realm
@Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {//用户账号String username = (String) token.getPrincipal();//根据用户账号从数据库取出盐和加密后的值//..这里使用静态数据//如果根据账号没有找到用户信息则返回null,shiro抛出异常“账号不存在”//按照固定规则加密码结果 ,此密码 要在数据库存储,原始密码 是111111,盐是eteokuesString password = "cb571f7bd7a6f73ab004a70322b963d5";//盐,随机数,此随机数也在数据库存储String salt = "eteokues";//返回认证信息SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(username, password, ByteSource.Util.bytes(salt),getName());return simpleAuthenticationInfo;}
1.1.2.2 realm配置
配置shiro-cryptography.ini
[main]
#定义凭证匹配器
credentialsMatcher=org.apache.shiro.authc.credential.HashedCredentialsMatcher
#散列算法
credentialsMatcher.hashAlgorithmName=md5
#散列次数
credentialsMatcher.hashIterations=1
#将凭证匹配器设置到realm
customRealm=cn.shareniu.shiro.authentication.realm.CustomRealm2
customRealm.credentialsMatcher=$credentialsMatcher
securityManager.realms=$customRealm
1.1.2.3 测试代码
测试代码同上个章节,注意修改ini路径。
分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) Java架构师交流群 523988350
- shiro salt
- Shiro salt 加密
- salt
- salt
- salt
- apache shiro中SHA512使用salt并迭代N次进行加密对应C#的加密方法
- salt returners
- Salt安装
- SALT 加密
- salt安装
- salt加密
- salt 迁移
- salt实战系列-安装salt
- shiro
- shiro
- Shiro
- shiro
- shiro
- 云计算相关论文目录
- angularjs事件指令--ngClick、ngDbclick、ngCut、ngChange、ngKeydown...
- 【BZOJ2733】[HNOI2012]永无乡【启发式合并】【Splay】
- Python闭包需要注意的问题
- slitaz的使用笔记
- shiro salt
- UI基础第三天(代码)
- ubuntu 安装 fcitx搜狗输入法
- Java---记录用户名和密码,保存至隐藏文件
- 学习笔记
- 学习历程2016522(1)
- DNS错误
- HDU 1164 Eddy's research I(埃拉托斯尼斯筛法求素数)
- C语言利用openSSL库DES模块加密