调用API时,计算出的signature与预期不符-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

调用API时,计算出的signature与预期不符

2016-02-17 20:56:40 2999 2

按照该文档方法编写测试代码https://help.aliyun.com/document_detail/dns/api-reference/call-method/signature.html?spm=5176.product9002830_dns.6.129.9Mrytq

我对于文档中的计算HMAC-SHA1部分有疑问
这部分代码如下(C/C++)

void AliSign(char *StringToSign, char *SignKey)
{
    char opad[64], ipad[64];
    sha1_context shactx;
    uint8 middata[20]; int i;

    memset(opad, 0, 64);
    strcpy(opad, SignKey);
    memset(ipad, 0, 64);
    strcpy(ipad, SignKey);

    for(i=0; i<64; i++)
        opad[i] ^= 0x5C,
        ipad[i] ^= 0x36;

    sha1_starts(&shactx);
    sha1_update(&shactx, (uint8*)ipad, 64);
    sha1_update(&shactx, (uint8*)StringToSign,
        strlen(StringToSign));
    sha1_finish(&shactx, middata);

    sha1_starts(&shactx);
    sha1_update(&shactx, (uint8*)opad, 64);
    sha1_update(&shactx, middata, 20);
    sha1_finish(&shactx, middata);

    base64_encode(middata, 20, StringToSign, 30);
}

API文档中给出如下示例

"GET&%2F&AccessKeyId%3Dtestid%26Action%3DDescribeDomainRecords%26Format%3Dxml%26DomainName%3Dexample.com%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3D1324fd0e-e2bb-4bb1-917c-bd6e437f1710%26SignatureVersion%3D1.0%26TimeStamp%3D2014-08-15T11%253A10%253A07Z%26Version%3D2015-01-09"
密钥:testsecret&
加密结果:SmhZuLUnXmqxSEZ/GqyiwGqmf+M=

使用我自己的函数,加密结果为RExwPbJruipP6shxgJWNjhsXyzU=,
这个结果与其他在线hmac加密结果一致,但是与文档中给出的结果不符
这个网站是一个在线HMAC加密网站http://1024tools.com/hmac
其给出了Hex结果444c703db26bba2a4feac87180958d8e1b17cb35以base64格式编码即为RExwPbJruipP6shxgJWNjhsXyzU=

在实际运行中收到如下回复

<?xml version="1.0" encoding="UTF-8"?> <Error><RequestId>687820ED-F1DB-479C-97AB-AC8979A74CFF</RequestId><HostId>dns.aliyuncs.com</HostId><Code>SignatureDoesNotMatch</Code><Message>The signature we calculated does not match the one you provided. Please refer to the API reference about authentication for details.</Message><!--10.178.73.196--></Error>

我怀疑,API文档所介绍的签名方法有误

取消 提交回答
全部回答(2)
添加回答
相关问答

1

回答

怎么调用自买的api

2016-11-03 12:37:30 1598浏览量 回答数 1

0

回答

视频直播 直播录制API接口问题

2020-11-24 18:42:35 434浏览量 回答数 0

1

回答

如何实时获取第三方api接口数据?

2020-10-23 09:49:59 938浏览量 回答数 1

0

回答

阿里云是否有识别图片是否是正规二寸照的API接口?

2020-09-08 11:53:58 369浏览量 回答数 0

1

回答

oss对象存储的瞬间拷贝的新功能开放api接口了吗?

2020-06-24 10:51:42 577浏览量 回答数 1

1

回答

php的API接口,Java对接,在Null上出问题了。应该怎么避免这个问题呢??报错

2020-06-08 20:01:59 497浏览量 回答数 1

1

回答

细数api接口平台,比较各类平台价格。? 400 报错

2020-06-04 11:52:37 489浏览量 回答数 1

1

回答

Web Api接口,安全上怎么加盐?? 400 报错

2020-06-04 13:13:18 682浏览量 回答数 1

1

回答

对于API风格的疑惑?Rest OR 统一URL接口报错 

2020-06-03 13:08:53 377浏览量 回答数 1

0

回答

云相册的API人脸接口ListFaces怎么使用

2017-10-27 10:53:31 1711浏览量 回答数 0
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
数据资源的基础设施API总线
立即下载
重保场景及API安全指南
立即下载
API 网关实践
立即下载