【密码学 12 AES和RSA 的结合】多种加密算法的常见结合套路
随机生成AES密钥AESKey
AESKey密钥用于AES加密数据,得到数据密文cipherText
使用RSA对AESKey加密,得到密钥密文cipherKey
提交密钥密文cipherKey和数据密文cipherText给服务器
JAVA实现
// 客户端实现
String AESkey = genAESkey();
String plain_Text = "qianniuwei";
String AES_Ciper_Text = AES_T.encryptAES(AESkey,plain_Text);
String AESkey_en_by_RSA = RSABase64_T.encryptBase64(AESkey);
Log.d("hengdi","AESkey_en_by_RSA:"+AESkey_en_by_RSA);
// 服务端解密过程 -------------
String AESkey_ = decryptBase64(AESkey_en_by_RSA);
Log.d("hendi","AES_T key:" + AESkey_);
String origin_plain_Text= AES_T.decryptAES(AESkey_,AES_Ciper_Text);
Log.d("hengdi","origin_plain_Text:"+origin_plain_Text);
推荐阅读
- 密码学 14 CryptoJS
- 错误注入攻击总结(Fault Injection Attack)
- 密码学 13 数字签名算法
- 密码学 10 非对称加密算法
- 区块链|Zcash:工作原理
- 区块链|比特币钱包安全