不可逆加密就是大家熟知的在 Spring Security 或者 Shiro 这一类安全管理框架中我们对密码加密经常采取的方案。这种加密算法的特点就是不可逆,即理论上无法使用加密后的密文推算出明文,常见的算法如 MD5 消息摘要算法以及 SHA 安全散列算法等。
可逆算法顾名思义,这种算法是可以根据密文推断出明文的,在我们的配置文件,我们要存放加密的密文,但是使用的时候还是需要解密后明文才能使用,所以需要使用可逆算法进行加密,可逆算法又分为两大类:
- 对称加密是指加密的密钥和解密的密钥一致,例如 A 和 B 之间要通信,为了防止别人偷听,两个人提前约定好一个密钥。每次发消息时, A 使用这个密钥对要发送的消息进行加密,B 收到消息后则使用相同的密钥对消息进行解密。这是对称加密,常见的算法有 DES、3DES、AES 等。
- 非对称加密就是加密的密钥和解密的密钥不是同一个,加密的密钥叫做公钥,可以公开告诉任何人,解密的密钥叫做私钥,只有自己知道。非对称加密不仅可以用来做加密,也可以用来做签名,使用场景还是非常多的,特别是在一些一对多的通信场景下,常见的加密算法是 RSA 。
可逆算法中的对称加密和非对称加密在 Spring Cloud Config 中都得到支持,下面我们就开始实战。
二、Config对称加密实战
1、下载加密包
Java 中提供了一套用于实现加密、密钥生成等功能的包 JCE