AWS SQS SendMessage身份验证签名版本2

时间:2013-02-22 11:51:29

标签: amazon-web-services digital-signature amazon-sqs

我已经疯了几个小时。我正在尝试使用SendMessage API调用Amazon SQS消息队列。

我正在遵循签名版本2方法(http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html

我收到了不匹配签名的错误。我一直在想它与字典字节排序有关,但我花了好几个小时试图找出它并且没有运气: - /

我可以成功发送一条消息作为我的“查询字符串组件”: “AWSAccessKeyId = AKIAIEXAMPLE&安培;动作= SendMessage消息&安培;到期= 2013-02-22T12%3A19 3A30%&安培;消息体= 12321&安培;是SignatureMethod = HmacSHA256&安培; SignatureVersion = 2及版本= 2012年11月5日”

将这些名称值对分解为易于阅读:

[“AWSAccessKeyId”,“Action”,“Expires”,“MessageBody”,“SignatureMethod”,“SignatureVersion”,“Version”]

[“AKIAIEXAMPLE”,“SendMessage”,“2013-02-22T12%3A19%3A30”,“12321”,“HmacSHA256”,“2”,“2012-11-05”]

但不是这组查询字符串组件:

“AWSAccessKeyId = AKIAIEXAMPLE&安培;动作= SendMessage消息&安培;到期= 2013-02-22T12%3A19%3A30&安培;消息体= 234&安培;是SignatureMethod = HmacSHA256&安培; SignatureVersion = 2及版本= 2012年11月5日”

细分为:

[“AWSAccessKeyId”,“Action”,“Expires”,“MessageBody”,“SignatureMethod”,“SignatureVersion”,“Version”]

[“AKIAIEXAMPLE”,“SendMessage”,“2013-02-22T12%3A19%3A30”,“234”,“HmacSHA256”,“2”,“2012-11-05”]

两者之间唯一的区别是MessageBody的值(12321有效,234没有),我尝试了各种各样的值,使用字符和整数,似乎无法解决问题。

任何建议都将不胜感激。

0 个答案:

没有答案