开发者社区> 问答> 正文

C短信发送签名实现

使用C#发送短信,提示是签名不一致,我使用HMACSHA1作为签名算法,使用API文档中签名的参考样例数据,怎么和样例的结果不一致呢?
HMACSHA1 hmacsha1 = new HMACSHA1(Encoding.UTF8.GetBytes(key));
            byte[] dataBuffer = Encoding.UTF8.GetBytes(text);
            var hashBytes = hmacsha1.ComputeHash(dataBuffer);
            return Convert.ToBase64String(hashBytes);
按照样例的数据,text为:
“GET&%2F&AccessKeyId%3Dtestid&Action%3DDescribeRegions&Format%3DXML&SignatureMethod%3DHMAC-SHA1&SignatureNonce%3D3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf&SignatureVersion%3D1.0&TimeStamp%3D2016-02-23T12%253A46%253A24Z&Version%3D2014-05-26”
key是:“testsecret&“,为什么结果和样例的签名结果不一样啊?有碰到类似问题的吗?如何解决的呢?
求助,求助!

展开
收起
蓝鲸1号 2017-07-01 18:29:58 3444 0
2 条回答
写回答
取消 提交回答
  • ReC短信发送签名实现
    用了API文档的样例,要加密的字符串,包括时间戳都是固定了,加密结果就是和样例的结果不一样
    2017-07-02 11:34:23
    赞同 展开评论 打赏
  • 时间戳是变得,把时间戳以前签名,结果两次就不一致了。
    2017-07-02 04:57:03
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载