RSA+AES请求组合加密

3,612 阅读2分钟

基本概念

加密方式分为:AES(对称加密)RSA(非对称加密)

AES算法流程

发送方:
  1. 创建AES私钥,用口令对私钥加密
  2. 将加密后的私钥发送给接收方
  3. 用私钥加密明文,并将密文和加密后的私钥发给接收方
接收方:
  1. 解密这个私钥
  2. 用解密后的密钥把密文解密成明文

RSA算法流程

接收方:
  1. 创建RSA密钥对(公钥和私钥)公钥发给发送方,私钥存在接收方。
  2. 接收方用私钥对密文解密
发送方:
  1. 公钥对明文加密,将密文发给接收方

RSA+AES结合加密

接收方:
  1. 创建RSA密钥对(公钥、私钥)把公钥发给发送方,自己保存私钥
  2. 用RSA私钥解密加密后的AES密钥,并用AES密钥解密密文,得到明文
发送方:
  1. 创建AES密钥,并用AES加密明文,再用RSA公钥加密AES密钥,并把加密后的AES密钥和密文发送给接收方

Android RSA+AES加密过程

Android:
  1. 生成AES密钥,并用AES密钥对明文加密
  2. 使用RSA公钥将AES密钥(aesKey)加密成encryptAesKey,作为HTTP请求头
  3. 将AES加密明文后的密文(encryptData)作为请求体,将请求体和请求头一起发给sever
sever:
  1. 生成RSA密钥对(公钥、私钥),提供接口给客户端,发送公钥
  2. 获得AES加密后的请求头(encryptAesKey),获得加密后的请求体(encryptData)
  3. 使用私钥解密请求头请求头(encryptAesKey)获得到AES密钥去请求体(encryptData)里的密文

RSA+AES
RSA+AES

参考链接

我的Android进阶之旅------>Android采用AES+RSA的加密机制对http请求进行加密

 Android数据加密之RSA+AES混合加密

Android数据加密之Aes加密