加密方式

  • MD5加密
  • 盐值加密
  • 实际开发中的应用

MD5加密

MD5加密方式,可以对文件或者值进行读取加密,并且这个密码是不可逆的,也就是不能被破解

利用第三方类库实现加密


//常用的MD5加密
String s = DigestUtils.md5Hex("123456");
System.out.println(s);

输出的MD5码


e10adc3949ba59abbe56e057f20f883e

MD5 经过摘要算法加密可以将任何长度的字符串转化成固定长度大小,无论加密前的字符串多大,即便是1G的数据,经过MD5摘要加密后可以得到一个固定长度字符串。
举个应用的例子,当我们使用云盘的快传功能时,即使是上传10G的数据,有时也会秒传,原因就是快传时并没有真正上传数据,因为云盘后台经过MD5的摘要算法计算获得了一个值,且这个值在其他上传信息中已经出现过了,所以证明资源已存在云盘,所以直接可以把地址对应的位置进行存储即可,这就是快传的基本实现

如果我们获取到一个MD5的值,想要解析出对应的字符串,可以使用 https://www.cmd5.com/ 网站
注:上面说到MD5是不可逆的,也就是不可解析的,这个网站的后台相当于一个大型的数据库,专门生成各种值得MD5,然后以key value得形式存储,我们查询出得结果并不是解析出得结果,而是存好得对应关系

盐值加密

上面说得MD5加密,是有可能被这种大型资源库匹配到,所以如果我们可以在MD5加密得基础上,加上一个我们特有得信息,那么就不会被匹配到了。这就是加盐


//盐值加密//随机盐值加密,生成一组随机数(盐),基于数据和随机数进行加密
System.out.println("默认盐:"+Md5Crypt.md5Crypt("123456".getBytes()));
//自定义盐值加密,不是生成随机数了,而是添加我们指定得值(盐)
//盐值得格式:$1$********  -->$1$拼接上8个字符
System.out.println("自定义盐:"Md5Crypt.md5Crypt("123456".getBytes(),"$1$AAAAAAAAA"));输出:
$1$WAYC6GZ5$Yxw4ghncpwfqEN/zRz3LX0
$1$AAAAAAAAA$AZofg3QwurbxV3KEOzwuI1

使用盐值加密,要注意得是保存好我们得盐值,Spring框架也提供一些封装好得方法

//1. spring 提供的盐值加密
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
//2.将传来的密码进行盐值加密,并获得加密串
String encode = bCryptPasswordEncoder.encode("123456");
//3.对比盐值密码,并获得布尔值
boolean matches = bCryptPasswordEncoder.matches("123456","$2a$10$GT0TjB5YK5Vx77Y.2N7hkuYZtYAjZjMlE6NWGE2Aar/7pk/Rmhf8S");log.info(encode+" ==> " + matches);

实际开发中的应用

在实际开发中得应用,比如账号密码,给用户得密码加上固定得盐值加密,将密文存入数据库

【密码加密】【MD5加密】【盐值加密】相关推荐

  1. 项目中的MD5、盐值加密

    首先介绍一下MD5,而项目中用的是MD5和盐值来确保密码的安全性: 1. md5简介 md5的全称是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一种被广泛使 ...

  2. Shiro密码加密 盐值加密

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

  3. mysql md5 盐值_md5盐值加密

    using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptograph ...

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

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

  5. CAS 密码盐值加密

    说明:MD5加密时query[0],MD5盐值加密时encode[0],MD5加密时fieldPassword,MD5盐值加密时passwordFieldName 1.MD5加密 配置加密策略,直接在 ...

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

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

  7. MD5码加密(盐值加密)

    MD5码加密(盐值加密) ​ 主要应用于用户密码在数据库的存储,当我们需要保存用户账号密码信息用于身份验证时,如果密码直接以明码的形式保存在数据库,很容易在数据库信息泄露时造成安全隐患. ​ 所以需要 ...

  8. shiro—MD5盐值加密

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

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

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

最新文章

  1. 详解这场图片分类赛baseline,赢取官方人才认证+奖金
  2. python redis 消息队列_python中利用redis构建任务队列(queue)
  3. sql语句的编程手册(2)
  4. oracle hang analyze,hanganalyze 分析数据库挂起
  5. 宏基平板电脑_2020年推荐:蒲城二手笔记本电脑回收价格联想戴尔华硕上门回-老友网...
  6. vscode 生成mvc_ASP.NET MVC 简介(附VS2019和VSCode版示例)
  7. python决策评价模型_Python大规模建模的特征值选择和性能评估方法详解
  8. maven 将依赖包打入jar中
  9. 十二月份找工作好找吗_人民大学在职研究生将来好找工作吗?
  10. 关于时间序列分析的协整检验、脉冲响应图、方差分解图和格兰杰因果检验
  11. nyoj 吃土豆 234 (双层DP)
  12. 邮件服务器公网IP被国外反垃圾联盟(PBL)列入黑名单移除操作方法
  13. 美菜半年退出数百个县城,开始往盈利迈进
  14. WSL Ubuntu忘记root密码和用户密码
  15. 关于vc隐藏浏览器控件 2010-9-7 16:07
  16. 利用mininet模拟SDN架构并进行DDoS攻击与防御模拟(Ryu+mininet+sflow+postman)
  17. 180501 逆向-RedHat(Reverse)
  18. memcached win64位服务端安装和java客户端实例
  19. 基于FPGA的花样流水灯
  20. 基于Python的指数基金量化投资-股票数据源baostock

热门文章

  1. 会声会影2019六大新功能盘点
  2. python jieba 分词进阶
  3. CCF考试笔记(c++)
  4. delete oracle 语句怎么写,Oracle下Delete语句
  5. iframe的使用和 contentWindow、parent以及postMessage通信方式
  6. c语言程序能在android,android环境下编译并运行C语言程序
  7. java有道_网易有道Java凉经
  8. Python基础之day02-if判断与while,for循环
  9. 机器学习中多分类模型的评估方法之--kappa系数
  10. linux内核中断详解