|

50精币
|
生成签名 | 文本型 | | |
SecretId | 文本型 | | | | SecretKey | 文本型 | | | | HttpMethod | 整数型 | | | | HttpURI | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | _HttpMethod | 文本型 | | | KeyTime | 文本型 | | | SignKey | 文本型 | | | HttpString | 文本型 | | | StringToSign | 文本型 | | | Signature | 文本型 | | | 最终签名 | 文本型 | | |
判断 (HttpMethod = 0 ) _HttpMethod = “get” 判断 (HttpMethod = 1 ) _HttpMethod = “post” 判断 (HttpMethod = 2 ) _HttpMethod = “put” 判断 (HttpMethod = 3 ) _HttpMethod = “delete” 判断 (HttpMethod = 4 ) _HttpMethod = “head”   判断 (是否为空 (HttpURI ))  HttpURI = “/exampleobject”   KeyTime = 时间_到时间戳 (, 真, ) + “;” + 时间_到时间戳 (增减时间 (取现行时间 (), #分钟, 60 ), 真, )调试输出 (“KeyTime:” + KeyTime )SignKey = hex_hmac_sha1 (SecretKey, KeyTime )调试输出 (“SignKey:” + SignKey )HttpString = _HttpMethod + “\n” + HttpURI + “\n\n\n”调试输出 (“HttpString:” + HttpString )StringToSign = “sha1\n” + KeyTime + “\n” + 校验_取sha1 (到字节集 (HttpString )) + “\n”调试输出 (“StringToSign:” + StringToSign )Signature = hex_hmac_sha1 (SignKey, StringToSign )调试输出 (“Signature:” + Signature )最终签名 = “q-sign-algorithm=sha1&q-ak=” + SecretId + “&q-sign-time=” + KeyTime + “&q-key-time=” + KeyTime + “&q-header-list=&q-url-param-list=&q-signature=” + Signature 调试输出 (“最终签名:” + 最终签名 )返回 (最终签名 )
生成出来的前面和官方的不一样 主要在 StringToSign Signature
官方给的函数是
StringToSign = [q-sign-algorithm]\n[q-sign-time]\nSHA1-HASH(HttpString)\n
Signature = HMAC-SHA1(SignKey,StringToSign)
我计算和他算的不一样
SHA1-HASH(HttpString)
HMAC-SHA1(SignKey,StringToSign)
求这2个函数
|
最佳答案
查看完整内容
把"\n"替换为 字符(10)
StringToSign=子文本替换(StringToSign,"\n",字符(10))
这样子~
求助知识:请将问题描述清楚,最好把你有问题的源码打包上传上来,这样更方便大家帮助你。 友情提醒:本版被采纳的主题可在 申请荣誉值 帖子申请荣誉值,获得 3点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
|