亚马逊MWS - 不了解如何生成HMAC

时间:2017-11-03 19:35:14

标签: base64 sha256 hmac amazon-mws

目前我正在与亚马逊MWS的HMAC一代进行一些努力。

我以为我明白它是如何运作的。

使用Scratchpad我生成了一个请求。 Scratchpad显示要签名的字符串以及SHA 256 HMAC和Base64 HMAC。 要签名的字符串由4行组成,如文档中所述。

HMAC有几个在线转换器。我试过了:

https://www.freeformatter.com/hmac-generator.html

https://codebeautify.org/hmac-generator

当我将字符串转换为Scratchpad生成的符号(4行)时,我得到另一个SHA 256 HMAC,然后生成Scratchpad。

还有几个适用于Base64的在线转换器。我试过了:

https://www.freeformatter.com/base64-encoder.html

https://www.base64encode.org

当我转换Scratchpad生成的SHA 256 HMAC时,我得到另一个Base64-String,然后生成Scrathpad。

这让我很困惑。我不明白的是什么?

其他观点:

后来我想我想使用GET而不是POST。我是否正确,要为GET签名的字符串也必须在4行而不是在一行中,因为它将在以后执行?这就是我理解文档的方式。

我使用了这些链接: http://docs.developer.amazonservices.com/en_US/dev_guide/DG_QueryString.html http://docs.developer.amazonservices.com/en_US/dev_guide/DG_SigningQueryRequest.html https://mws.amazonservices.com/scratchpad/index.html

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。

使用Onlineconverter生成SHA256:

我认为问题是LF。 Onlineconverter可能有问题。也许他们使用CRLF。最好不要尝试使用在线转换器检查SHA256。

使用Onlineconverter生成base64:

SHA256 Scratchpad显示的不是您使用base64转换的值。您必须转换SHA256的十六进制值。

使用GET签名:

如果要使用GET,则要签名的查询必须类似于签署POST的查询。还有四行。只用GET交换POST。

相关问题