1 、常见加密算法

对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES

非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1(是一种不可逆的算法
在线hash计算地址

2、 SHA-256:

对于任意长度的消息,SHA256都会产生一个256位的哈希值,称作消息摘要。这个摘要相当于是个长度为32个字节的数组,通常有一个长度为64的十六进制字符串来表示,其中1个字节=8位,一个十六进制的字符的长度为4位。

  System.out.println(DigestUtils.sha256Hex("123456"));System.out.println(new Sha256Hash("123456"));// 输出
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

3、加盐

散列算法一般用于生成数据的摘要信息,是一种不可逆的算法,一般适合存储密码之类的数据,常见的散列算法如MD5、SHA等。
一般进行散列时最好提供一个salt(盐),比如加密密码“admin”,产生的散列值是“21232f297a57a5a743894a0e4a801fc3”,可以到一些md5解密网站很容易的通过散列值得到密码“admin”,即如果直接对密码进行散列相对来说破解更容易,此时我们可以加一些只有系统知道的干扰数据,如用户名和ID(即盐);这样散列的对象是“密码+用户名+ID”,这样生成的散列值相对来说更难破解

String md5 = new Md5Hash(str, salt).toString();//还可以转换为 toBase64()/toHex()
String sha1 = new Sha256Hash(str, salt).toString();  // 保存密码String salt = RandomStringUtils.randomAlphanumeric(20);user.setPassword(new Sha256Hash(newPassword, salt).toHex());user.setSalt(salt);// 验证密码user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())

Sha256Hash+salt 密码加密使用相关推荐

  1. shiro框架采取MD5+salt方式加密密码

    1.Maven配置 <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-s ...

  2. C# 使用Salt+Hash来为密码加密

    (一) 为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站用户的密码),你要考虑如何保护这些密码数据,象下面那样直接将密码写入数据库中是极不安全的,因为任何可以打开数据库的人,都将可以直接看到 ...

  3. 学习Spring Boot:(十四)spring-shiro的密码加密

    前言 前面配置了怎么使用 shiro ,这次研究下怎么使用spring shiro的密码加密,并且需要在新增.更新用户的时候,实现生成盐,加密后的密码进行入库操作. 正文 配置凭证匹配器 @Beanp ...

  4. 用户密码加密存储十问十答,一文说透密码安全存储

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | 程序员赵鑫 来源 | cnblogs.com/xinzh ...

  5. 深入解析Express下采用bcryptjs进行密码加密

    本篇文章主要介绍了Express下采用bcryptjs进行密码加密的方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. bcrypt,是一个跨平 ...

  6. Spring Security入门(三):密码加密

    前文导读 - Spring Security入门(一):登录与退出 - Spring Security入门(二):基于数据库验证 Github 地址 https://github.com/ChinaS ...

  7. 【Spring框架家族】Spring--Security权限控制密码加密

    Spring Security简介 Spring Security是 Spring提供的安全认证服务的框架. 使用Spring Security可以帮助我们来简化认证 和授权的过程.官网:https: ...

  8. 网站数据库中“密码加密”方法思考

    博主,开始时候,写的web应用,数据库中的密码,都是直接保存的.真正的原汁原味,真正的所见即所得. 后来,看了别人的web应用都是MD5加密的,感觉很不错,自己也在应用中加入了MD5加密,貌似&quo ...

  9. 使用密钥加密码加密_创建基于密码的加密密钥

    使用密钥加密码加密 本文讨论了创建基于密码的加密PBE密钥. 首先提醒您以前的要点–通常,在实际操作中,应将PBE密钥用作主密钥,该主密钥仅用于解锁工作密钥. 这具有三个主要优点: 您可以有多个密码, ...

最新文章

  1. Xamarin Andro教程搭建Xamarin Androidid开发环境(一)
  2. 自己动手实现一个简单的JSON解析器
  3. 春节书单:优秀的产品经理们都在读什么?
  4. Error: listen EACCES 127.0.0.1
  5. 施密特触发器(Schmitt Trigger)?
  6. 【渝粤教育】国家开放大学2018年秋季 0233-22T学前儿童语言教育 参考试题
  7. python条件输出_python基础(二)条件判断、循环、格式化输出
  8. LeetCode7——Reverse Integer(将一个整数反转,注意溢出的处理)
  9. Linux(5) 组管理和权限管理
  10. FPGA扩展SRAM
  11. php ssl扩展,php如何安装openssl扩展?
  12. c# 定义委托和使用委托(事件的使用)
  13. JAVA中serialVersionUID可以使用hashCode()赋值
  14. 给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符(需要区分大小写)。
  15. Oracle新增字段后,写入数据是提示ORA-00917:XXX 标识符无效
  16. 时区相关-这一篇全了解
  17. 中职计算机应用基础word表格,计算机应用基础-word表格编辑.ppt
  18. Emacs-206-Windows上实现org-pomodoro的声音提示播放
  19. TOTP 介绍及基于C#的简单实现
  20. JAVA毕设项目喜枫日料店自助点餐系统(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. sohu收购Go2Map案背后的3S崛起
  2. 【算力网络】算力网络的技术创新——网络基础设施关键技术
  3. leetcode-SQL-1693. 每天的领导和合伙人
  4. 联想小新air13.3 无法开机,非硬件问题!
  5. Vue+TypeScript+Antd+Stylus+Flexible+阿里普惠体
  6. MVVC 多版本并发控制
  7. WAVENET-语音合成
  8. 智能 pos 机 密钥逻辑
  9. CSDN写博客字体颜色,空格,大小标题,图片尺寸大小及居中等修改命令
  10. HTML(Hyper Text Markup Language)