字典表
app_key:客户端名称
app_secret:客户端密码
timestamp:与noncestring配合使用防重刷
noncestring:随机串
type:加密方式
思路
1.客户端
客户端将app_key,app_secret,timestamp,nonocestring与其他请求参数排序后拼接,然后使用加密方式加密后得到签名,再一起发过去服务端
2.服务端
服务端从客户端传来的参数获取app_key的,然后查询得到app_secret,然后根据相同的方法求签名,与客户端的对比,相同则通过
防重刷:第三方截取客户端发送的请求,不作更改但重复发送给服务器的攻击
timestamp是客户端的发送时间戳,与服务端的对比,超过指定时间则说明过期不能再使用
noncestring是客户端每次发送都要生成的随机串,在签名有效时间内不能重复通过服务器,这就保证签名有效时间内无法重复使用
加密方法的选择
客户端可以任意选择,只要服务器有对应的加密算法,只要在type那里写明使用了什么方法,服务器就能选择对应的加密方法来验证签名
在服务器上使用工厂模式来选择加密方法