AES+RSA加密——Android版

device-2017-02-27-110413.png

Android端 AES+RSA结合实践

  • 基本要求
  • 保证传输数据的安全性
  • 保证数据的完整性
  • 能够验证客户端的身份
  • 基本流程
  • Android端
    服务器端(server)分别生成自己的RSA密钥对,并提供接口给Android客户端获取RSA公钥(rsaPublicKey)
    client生成AES密钥(aesKey)
    client使用自己的AES密钥(aesKey)对转换为json格式的请求明文数据(data)进行加密,得到加密后的请求数据encryptData
    client提供server提供的接口获取RSA公钥(rsaPublicKey)
    client使用获取RSA公钥(rsaPublicKey)对AES密钥(aesKey)进行加密,得到encryptAesKey
    client将encryptAesKey作为http请求头参数,将加密后的请求数据encryptData作为请求体一起传输给服务器端
  • 服务器端
    server响应client的http请求,读取http请求头。获得client传过来的加密后的AES密钥(encryptAesKey),读取http请求体,获得client传过来的加密后的请求数据(encryptData)。
    server使用自己的RSA私钥(rsaPrivateKey)对加密后的AES密钥(encryptAesKey)进行RSA解密,得到AES密钥(aesKey)
    使用解密后的AES密钥(aesKey)对加密后的请求数据(encryptData),进行AES解密操作,得到解密后的请求数据(data),该数据为json格式
    对解密后的请求数据(data)进行json解析,然后做相关的响应操作。

简单说,data用Aeskey进行AES加密,Aeskey进行rsa加密;data解密需要Aeskey,Aeskey解密用rsa

Demo Here

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容