接口非对称加密+Retrofit2(未完成)

最近公布一个非常丰富的开源库,如果你需要相册、录制、录音等操作,那么这个也许对你有一定的帮助:
https://www.jianshu.com/p/8a0accffd0e1

照常例打出我搜到的相关文章
http://blog.csdn.net/ouyang_peng/article/details/50983574
https://www.zhihu.com/question/20874499

在讲接口加密之前,先了解AES与RSA的区别。
(具体算法咱们就不讨论了,如果一定要讨论:https://www.cnblogs.com/awsqsh/articles/4349114.html

AES:对称加密。加密速度快,相比RSA的安全性就没那么高。
RSA:非对称加密。算法的密钥很长,具有较好的安全性,但加密的计算量很大,加密速度较慢限制了其应用范围。

1.AES与RSA

对称加密AES:
网上看到的一个非常鲜活的例子,哈哈哈哈

如图所说,服务器(男方)和客户端(女方)都彼此知道该钥匙是0101000101,他们通过彼此的钥匙来进行加密解密。

非对称加密RSA:

如果上面对称加密AES的一个钥匙被偷走的话,那么就很容易破解了。

那么非对称加密就是很好的解决了这个方法。


image.png

上面的图片可以首先看到钥匙已经不再是一个了,而是公钥跟私钥一起组合的钥匙,公钥是可以公开出来的。首先加密是通过服务器(男方)加密的,然后客户端(女方)通过该公钥和自己客户端私下的私钥进行解密。

也许你们会认为rsa不就多了个公钥私钥的区别么,其一来说单纯一个钥匙同时在服务端和客户端容易泄漏出去,其二来说用公钥和明文推导密文很容易,但根据公钥、明文和密文推导私钥极其难

2.AES与RSA如何配合加密

从上面比较得知,由于RSA加解密速度慢,不适合大量数据文件加密。AES加密速度很快。
这样在传送机密信息的双方
1:使用AES对传输数据加密
2:使用RSA不对称密码体制来传送AES的密钥
这样就可以综合发挥AES和RSA的优点同时避免它们缺点来实现一种新的数据加密方案。加解密实现流程如图(同样是网上找的)。


image.png

那么流程我们明白了,开始深入了解代码。假设一个场景,app客户端向服务端传输一个数据


image.png

这个流程我分开5个步骤,让我们一个个步骤讲:
第一步解析:handleRSA
%……&¥%……&¥#……%#@……留待后面编辑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容