安卓app开发,与服务端传输数据,有什么好的加密方案

安卓app开发,与服务端传输数据,有什么好的加密方案,第1张

如果要自己开发建议使用对称加密算法AES的CBC加密模式加密,像DES和AES的ECB加密算法都不是安全的加密算法。数据的传输使用socket相对于http传输安全且速度更快,对称加密密钥的存储可以使用阿里组件的白盒加密存储密钥来达到密钥的安全保密。

故如果想要自己先实现RSA非对称加密再用AES对称加密传输估计时间上也不会太快,且https就是实现的非对称加密+对称加密算法的传输协议。

供你参考

对称加密:对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高

非对称加密:非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。

方案:将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

方案的流程介绍:

1、APP客户端需要和服务器进行数据交互,它的APP首先生成了一个随机数作为对称密钥(比如AES加密的密钥)。

2、APP客户端向服务器请求公钥

3、服务器将公钥发送给APP客户端

4、APP客户端使用服务器的公钥将自己的对称密钥(比如AES加密的密钥)加密

5、APP客户端将加密后的对称密钥发送给服务器

6、服务器使用私钥解密得到APP客户端的对称密钥

7、APP客户端与服务器可以使用对称密钥来对沟通的内容进行加密与解密了

App端和后台数据加密分两部分:

1.数据传输的时候加密 (一般采用Https协议在传输层加密)

2.数据本身的加密(使用各种加密算法)

RSA非对称加密:公钥加密,私钥解密。公钥私钥由服务端生成,公钥放在客户端私密保存,私钥放在服务端。安全性高,运算速度慢

AES对成加密:运算速度快切安全性高

上面网络通信过程是安全的,可以保证通信数据即使被截取了,也无法获得任何有效信息;即使被篡改了,也无法被客户端和服务端验证通过。

具体可参考的博文:(记得后续实践哦)

https://blog.csdn.net/wangjiang_qianmo/article/details/88073848?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/331407.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存