常用加密算法
目录
加密盐
- 加密盐也是比较常听到的一个概念,盐就是一个随机字符串用来和我们的加密串拼接后进行加密。
- 加盐主要是为了提供加密字符串的安全性。
- 假如有一个加盐后的加密串,黑客通过一定手段这个加密串,他拿到的明文,并不是我们加密前的字符串,
- 而是加密前的字符串和盐组合的字符串,这样相对来说又增加了字符串的安全性。
加密过程(用户注册)
- 最终的密文是以下两个内容的函数:
- 用户输入的密码明文
- 盐值
- 最后要将以下内容存入数据库:
- 用户的用户名
- 最终的密文
- 加密所用的盐值
校验过程(用户登录)
不可逆加密
- 常见的不可逆加密算法有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等。