md5签名验证

md5签名验证

调用方需要申请 App Key 和 App Secret。
App Key 用来识别调用方身份。
App Secret 用来加密生成签名使用。

签名需要满足以下几点:
可变性:每次的签名必须是不一样的。
时效性:每次请求的时效性,过期作废。
唯一性:每次的签名是唯一的。
完整性:能够对传入数据进行验证,防止篡改。

/api?param_1=xxx&param_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&param_2=xxx&ak="+appKey+"&ts=xxx"
// 自定义验证规则
sn = MD5(appSecret + encryptStr + appSecret)

验证签名
通过传递参数,再次生成签名,如果将传递的签名与生成的签名进行对比。
相同,表示签名验证成功。
不同,表示签名验证失败。

posted @   delphi中间件  阅读(424)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-08-07 DELPHI给整个项目加编译开关
2019-08-07 TThread.Queue和TThread.Synchronize的区别
2018-08-07 FMXUI
2018-08-07 x-superobject
2018-08-07 mORMot
2018-08-07 NativeXml
2018-08-07 superobject
点击右上角即可分享
微信分享提示