目录

常用加密算法

加密盐

  • 加密盐也是比较常听到的一个概念,盐就是一个随机字符串用来和我们的加密串拼接后进行加密。
  • 加盐主要是为了提供加密字符串的安全性。
  • 假如有一个加盐后的加密串,黑客通过一定手段这个加密串,他拿到的明文,并不是我们加密前的字符串,
  • 而是加密前的字符串和盐组合的字符串,这样相对来说又增加了字符串的安全性。

加密过程(用户注册)

/img/常用加密算法/1.png

  1. 最终的密文是以下两个内容的函数:
  • 用户输入的密码明文
  • 盐值
  1. 最后要将以下内容存入数据库:
  • 用户的用户名
  • 最终的密文
  • 加密所用的盐值

校验过程(用户登录)

/img/常用加密算法/2.png

不可逆加密

  • 常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512
  • 其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2加密算法
  • SHA加密算法的安全性要比MD5更高,而SHA2加密算法比SHA1的要高。
  • 其中SHA后面的数字表示的是加密后的字符串长度,SHA1默认会产生一个160位的信息摘要。

不可逆加密算法最大的特点就是密钥

对称加密算法

  • 对称加密算法是应用比较早的算法,在数据加密和解密的时用的都是同一个密钥,这就造成了密钥管理困难的问题。
  • 常见的对称加密算法有DES、3DES、AES128、AES192、AES256 (默认安装的 JDK 尚不支持 AES256,需要安装对应的 jce 补丁进行升级 jce1.7,jce1.8)。
  • 其中AES后面的数字代表的是密钥长度。对称加密算法的安全性相对较低,比较适用的场景就是内网环境中的加解密。

非对称加密算法

  • 非对称加密算法有两个密钥,这两个密钥完全不同但又完全匹配。
  • 只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。
  • 常见的非对称加密有RSA、SM2等。