|
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用户组。
|