shiro配置盐值加密

一:在shiro配置文件ShiroConfig.java中配置密码凭证匹配器

 /*** 密码凭证匹配器,作为自定义认证的基础* @return*/@Beanpublic HashedCredentialsMatcher hashedCredentialsMatcher() {HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();hashedCredentialsMatcher.setHashAlgorithmName("MD5");//散列算法:这里使用MD5算法hashedCredentialsMatcher.setHashIterations(10);//散列的次数return hashedCredentialsMatcher;}

二:将密码凭证匹配器注入我们的realm中

在shiro配置文件ShiroConfig.java中:

/**** 注入我们自定义的realm* @return*/@Beanpublic MyRealm myRealm() {MyRealm myRealm = new MyRealm();//将密码凭证匹配器注入自定义的RealmmyRealm.setCredentialsMatcher(hashedCredentialsMatcher());return myRealm;}

三:传参添加盐值

在自定义MyRealm的认证方法中,最后一句第三个参数传入盐值:

四:测试

1.先根据密码生成加密后的密码,可以通过下面的工具类来生成:

import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
/*** md5加密工具类*/
public class MD5Util {// 散列次数private static final int HASHITERATIONS = 10;//觉得3次不够,就增加次数// 内置saltprivate static final String PUBLIC_SALT = "quyi";//随机生成的UUID当做公盐使用/*** @param source 要用公共盐加密的字符串* @return 用共盐加密的密码*/private static String md5_public_salt(String source) {return new Md5Hash(source, PUBLIC_SALT, HASHITERATIONS).toString();}/*** @param source 原始密码* @param salt   传入的私盐* @return 二次加密后的密码*/public static String md5_private_salt(String source, String salt) {//再对加密的后密文用私盐加密一次return new Md5Hash(md5_public_salt(source), salt, HASHITERATIONS).toString();}//调用方法生成密码打印出来public static void main(String[] args) {String s = md5_public_salt("123");System.out.println(s);}
}

这里我用的盐值是固定的,正式开发中可以用动态生成的字符串,比如user表中多一个盐值字段存放每个用户的盐值,用户注册的时候随机生成一个uuid作为盐值保存起来。

2.将打印出来的加密之后的密码替换到数据库中,这里我用的是假数据,意会就行:

3.这个时候我们可以使用密码去登陆调试。

shiro配置盐值加密相关推荐

  1. Spring Boot 整合 shiro 之盐值加密认证详解(六)

    Spring Boot 整合 shiro 之盐值加密认证详解 概述 不加盐认证 加入密码认证核心代码 修改 CustomRealm 新增获取密文的方法 修改 doGetAuthenticationIn ...

  2. Springboot + Shiro——MD5 盐值加密(配置)

    其实这里所说的盐,简单的说,就是一组安全随机数.它会在特定的时候,加入到密码中(一般来说是加密后的密码).从而使密码变得更有味道(从单一简单化到复杂化),更安全. 如何做到? 1). 在 doGetA ...

  3. shiro—MD5盐值加密

    本例为在idea下shiro集成springMVC.仅有一个认证加密方式(一个realm ) 为什么是MD5盐值加密呢?shiro用密码匹配,密码一样,就ok.如果两个用户的密码一样,则就会造成麻烦. ...

  4. shiro盐值加密(五)

    背景: 为了密码的安全性,密码要进行加密操作.通常我们使用的散列加密算法,其加密算法是不可逆的,即不能由密文推算出明文,所以即使数据库管理员或者入侵者知道了你存储在数据库里面的密码,也不会知道你真实的 ...

  5. java shiro盐值加密_java中spring-shiro实现密码的MD5盐值加密

    看了网上很多教程,都提到有配置spring shiro的密码加密方式,甚至给出了自定义的Class来实现.却很少有通过配置来解决的. 密码的盐值加密方式应该是非常通用的,也可以算是基础吧.按理说spr ...

  6. Shiro(三) 身份认证源码分析与 MD5 盐值加密

    文章目录 1. 身份认证 2. 身份验证的基本流程 3. 身份验证实现 3.1 在 `login.jsp` 添加登录表单 3.2 添加表单提交的 Controller 3.3 完善 Realm 的身份 ...

  7. Shiro学习笔记-----小组开发前后端分离项目---登陆认证盐值加密

    当下我正在参与的学校前后端分离的实习项目,有了登录系统的需求,于是我在了解到Shiro是当下主流的安全框 架后,毅然决然开启了学习Shiro的旅程 首先来谈谈什么是Shiro,Apache Shiro ...

  8. Shiro密码加密 盐值加密

    1.为什么要盐值加密 对于同一密码,同一加密算法会产生相同的hash值.这样,当用户进行身份验证时,对用户输入的明文密码应用相同的hash加密算法,得出一个hash值,然后使用该hash值和之前存储好 ...

  9. C#实现带盐值加密,适配JAVA Shiro加密

    C#实现带盐值加密,适配JAVA Shiro加密 前言 核心代码 Java代码 C#代码 注意 前言 工业领域上位机软件与管理系统通常使用不同编程语言实现,比如我们的上位机软件通常使用C#,而MES. ...

最新文章

  1. python刷题一亩三分地_手把手教你用python抓网页数据【一亩三分地论坛数据科学版】...
  2. linux界面添加地址,Linux系统下图形界面更改IP地址
  3. Java分布式唯一ID生成方案——比UUID效率更高的生成id工具类
  4. 如何设置ftp服务器上传文件夹至不同路径,设置ftp服务器上传文件夹
  5. C++ 转 Python 这三年,我都经历了什么?
  6. 第九届蓝桥杯省赛C++A组第二题 ---星期一
  7. datalist 给输入框绑定文本提示(大部分浏览器不支持)
  8. 在手动安装 Kubernetes 的基础上搭建微服务
  9. cactiez的monitor主机名乱码
  10. c语言mooc第五周作业,中国大学MOOC 浙江大学《程序设计入门——C语言》第5周:循环控制 测验与作业...
  11. 畅捷教育系统服务器,畅捷教育云平台使用手册一、学生操作流程图-畅捷通.PDF...
  12. 传感器实验——超声波避障小车
  13. 使用思科交换机Packet——Tracer模拟器教程
  14. 智慧多功能综合杆案例分享:上海市多杆合一、综合杆道路智慧路灯项目解决方案解析
  15. matlab乖离率计算,终于有人把“乖离率”说清楚了,看懂少走十年弯路!
  16. TPH-YOLOv5简述
  17. Yapi环境搭建(史上最详细步骤)
  18. python课程小作业之桌面小工具系统
  19. CSDN如何导出为pdf文档?
  20. 你的Qt按钮可以加载Gif圆形的头像吗?

热门文章

  1. python异步编程
  2. 抖音机房如何搭建?新人必看!直播运营大揭秘!
  3. SpringBoot快速入门
  4. webdriver操作cookie
  5. ZZULIOJ:1051: 平方根的和
  6. MKLink 命令的使用
  7. 快手新人主播怎么开店,新人主播开什么店好
  8. 五款资深高效的开源Web性能测试工具
  9. python mysql 清空表数据
  10. python 拆分word,拆分python中的句子