加密方式一般分为两种:对称加密与非对称加密
对称加密:秘钥数量为一个
优点:加密效率高、对方使用相同的秘钥解密
缺点:不安全(相对于非对称加密)
非对称加密:秘钥数量为两个(公钥和私钥)
公钥:任何人都可以持有,一般用于加密作用
私钥:只有自己持有,一般用于数字签名,签名的数据证明是私钥持有人发送来的。私钥签名的数据,私钥持有人无法否认自己发送的消息
优点:安全线高
缺点:公钥加密的数据只有对应的私钥才能解开、加密效率低一般不做大数据加密使用
对称加密与非对称加密使用情况:
一般配合对称加密使用,建立之初先使用非对称加密,协商好对称加密的算法和秘钥,然后进行对称加密,后续解密。
下面代码演示的是JWT的非对称加密方式,上一篇写的是RSA的非对称加密方式,DES对称加密有时间在补充:
依赖一定要导入:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
<dependency>
<groupId>org.apache.directory.studio</groupId>
<artifactId>org.apache.commons