aes 对称加密算法
加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。
密钥长度可以为16,24或者32字节(128,192,256位)。根据密钥的长度,算法被称为AES-128,AES-192或者AE-256。
两种模式(ECB/CBC)
ECB: 是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。
CBC: 是一种循环模式,前一个分组的密文和当前分组的明文异或或操作后再加密,这样做的目的是增强破解难度。(不容易主动攻击,安全性好于ECB,是SSL、IPSec的标准)
rsa 非对称加密算法
加密和解密用的密钥是不同的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。
RSA的解密速度约等于AES解密数据的100倍。
一般 客户端加密 -- > 服务端解密过程:
1、客户端随机产生aes的密钥
2、使用rsa对aes密钥加密
3、对客户端敏感信息进行aes加密
4、客户端提交rsa加密后的aes密钥 + 敏感信息到服务器端
5、服务端对加密后的aes密钥进行rsa私钥解密,拿到aes密钥原文,再对加密后的敏感信息进行aes解密,拿到原始内容
备注:
如何生成rsa密钥:https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103242&docType=1