RSA与AES在数据安全传输中的应用方式
数据安全传输在日常开发中常常被忽略,以至于自问怎么样保证数据从浏览器传输到服务器端的安全性?我的认识还只停留在使用HTTPS协议这上。同样在对称加密、非对称加密算法也只停留在概念阶段,也从未使用过。正好在毕业设计中遇上了这个问题,下面将通过时序图+代码的方式来进行说明和展示。
本文的思路参考自《结合RSA,AES128,MD5—移动端与服务端在通信层的加密处理》,感谢该文作者的分享。
本文将在该文章的思路上,完善开发者所关注的前后端交互流程,并附上简单的示例代码进行说明。这里就不再介绍RSA算法和AES算法了,并省去了加签处理步骤。
1 时序图
下面通过一幅时序图来对RSA与AES如何运用在数据传输中进行说明。
从交互对象上分为:客户端(也就是浏览器)、服务器端、Redis,在这个流程中Redis的目仅仅是为存储公钥(pubKey)和私钥(pvtKey),所以不使用Redis也是可以的。
处理流程上分为:获取服务器公钥、加密数据、解密数据。接下来,将按流程逐步将时序图进行分解说明。
1.1 获取服务器公钥
客户端所需要做的第一步就是获取服务器公钥(pubKey):