最近一直在给app中接入第三方云盘,发现各家都有对每一次请求进行不同形式的加密算法传输,对于做客户端的人来说可能就是完全按照官方的文档进行加密传输就行了,但是最近也查资料关注了一下这个客户端与服务端之间的加密实现原理:我们在注册每一家云盘的时候都会分配一个appKey
和appSecret
,客户端将appKey
和appSecret
保存在本地,我们每次在发送http
请求的时候都会按照一定的算法对请求参数以及一些特定的约束进行字符串拼接,然后用我们保存在本地的appSecret
使用我们选定的一种加密算法对拼接的字符串进行加密,这个appSecret
为了保证安全性一般不会在网络中进行传输,我们将本身的请求参数和加密后的字符串一起传输给服务器,注意我们在每次请求服务器的时候都会把appKey
发送给服务器,服务器接收到请求之后,根据接收的appKey
在数据库中找到对应的appSecret
,拿到secret
按照与客户端之间的约束按照同样的加密规则进行数据加密,加密以后和客户端传送过来的加密字符串进行相同比较,如果相同则认为这次的请求是安全,可以进行响应处理。(以上只是自己的一点简单的理解,不对的请指出,谢谢)
网友评论