字典表

app_key:客户端名称

app_secret:客户端密码

timestamp:与noncestring配合使用防重刷

noncestring:随机串

type:加密方式

 

思路

1.客户端

客户端将app_key,app_secret,timestamp,nonocestring与其他请求参数排序后拼接,然后使用加密方式加密后得到签名,再一起发过去服务端

2.服务端

服务端从客户端传来的参数获取app_key的,然后查询得到app_secret,然后根据相同的方法求签名,与客户端的对比,相同则通过

 

防重刷:第三方截取客户端发送的请求,不作更改但重复发送给服务器的攻击

timestamp是客户端的发送时间戳,与服务端的对比,超过指定时间则说明过期不能再使用

noncestring是客户端每次发送都要生成的随机串,在签名有效时间内不能重复通过服务器,这就保证签名有效时间内无法重复使用

 

加密方法的选择

客户端可以任意选择,只要服务器有对应的加密算法,只要在type那里写明使用了什么方法,服务器就能选择对应的加密方法来验证签名

在服务器上使用工厂模式来选择加密方法