MD5签名的WebApi框架
1、统一的返回格式
2、全局的错误日志处理
3、请求内容经过MD5加密处理。其中加密信息存放在HttpHeader里。请参考SignatureHeader类。
appid为接口授权访问的第三方应用ID,同时每个ID对应一个密钥。这里是写死的,可根据需要从数据库或配置文件读取。
timestamp是一个时间戳,表示当前请求的过期时间。
nonce是个随机数,增加密码复杂度。
signature是把请“求参数+应用id+时间戳+随机数”的顺序组成字符串进行MD5加密后的一个签名字符串。
4、每一次请求生成的签名都会存放在redis缓存中,缓存过期时间和请求过期时间一致。目的是防止攻击者截获请求后进行反复请求。可根据需要修改允许重复请求的次数。