SignatureValidator 是一个基于 HMAC-SHA256 算法的参数签名验证工具,专为 API 安全设计。通过为请求参数生成数字签名,确保数据的完整性和真实性,防止参数被篡改和重放攻击。算法原理#
签名生成流程#
请求参数 → 过滤无效值 → 按 key 排序 → 构建待签名字符串 → HMAC-SHA256 → 签名
详细步骤:#
None、空字符串 ''、空字典 {}、空列表 []
第二步:参数排序
按参数名(key)的 ASCII 码从小到大排序(字典序),确保不同语言实现结果一致。复杂类型(dict/list):序列化为 JSON 字符串(紧凑格式,无空格,key 排序)
第四步:URL 编码
使用 encodeURIComponent 兼容的编码方式,对 key 和 value 进行编码,处理特殊字符。第五步:构建待签名字符串
格式:key1=value1&key2=value2&key3=value3email=ron%40ehido.kp&user_name=Franklin%20Santos%20%E4%BD%A0%E5%A5%BD%E5%90%83
python代码示例#
Modified at 2025-11-14 10:55:26