md5签名验证
md5签名验证
调用方需要申请 App Key 和 App Secret。
App Key 用来识别调用方身份。
App Secret 用来加密生成签名使用。
签名需要满足以下几点:
可变性:每次的签名必须是不一样的。
时效性:每次请求的时效性,过期作废。
唯一性:每次的签名是唯一的。
完整性:能够对传入数据进行验证,防止篡改。
/api?param_1=xxx¶m_2=xxx&ak=xxx&ts=xxx&sn=xxx
ak 表示App Key,用来识别调用方身份。
ts 表示时间戳,用来验证接口的时效性。
sn 表示签名加密串,用来验证数据的完整性,防止数据篡改。sn 是通过 App Secret 和 传递的参数 进行加密的。
签名加密:MD5 组合加密、AES 对称加密、RSA 非对称加密。
md5签名
func MD5(str string) string {
s := md5.New()
s.Write([]byte(str))
return hex.EncodeToString(s.Sum(nil))
}
appKey = "demo"
appSecret = "xxx"
encryptStr = "param_1=xxx¶m_2=xxx&ak="+appKey+"&ts=xxx"
// 自定义验证规则
sn = MD5(appSecret + encryptStr + appSecret)
验证签名
通过传递参数,再次生成签名,如果将传递的签名与生成的签名进行对比。
相同,表示签名验证成功。
不同,表示签名验证失败。
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/16559787.html