ginaksk 默认使用 encoding/hex 生成字符串,添加到 HTTP 请求的头部; 可以在使用 Validate 中间件之前,调用 SetEncoder 修改为其他编码格式,如示例中的 base64
ginaksk 默认使用 sha256.New 作为 hmac.New 的 hash.Hash 类型; 可以在使用 Validate 中间件之前,调用 SetHash 修改为其他算法,如 sha512.New
| 名称 | 说明 |
|---|---|
| x-auth-accesskey | 客户端的访问密钥 |
| x-auth-timestamp | 请求发起时的时间戳,单位: 秒 |
| x-auth-signature | 请求的签名 |
| x-auth-body-hash | 请求的 Body 的 Hash 值 |
| x-auth-random-str | 随机字符串 |
- 假设哈希算法为
SHA256, 编码格式为HEX; - 取出客户端访问密钥:
x-auth-accesskey; - 取当前的时间戳:
x-auth-timestamp; - 生成随机字符串:
x-auth-random-str; - 如果请求的
BODY非空, 对BODY计算SHA256的值, 并编码为HEX得到:x-auth-body-hash; - 将
x-auth-accesskey,x-auth-timestamp,x-auth-random-str,x-auth-body-hash按照字典序排序, 拼接成字符串s; - 取出客户端访问密钥对应的
secretkey, 对s计算HMACSHA256的值, 并编码为HEX, 得到x-auth-signature;