关于base64:Amazon MWS-不了解如何生成HMAC

Amazon MWS - Don't understand how to generate HMAC

目前,我在为亚马逊MWS生成HMAC方面有些挣扎。

我以为我知道它是如何工作的。

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

HMAC有几个Onlineconverter。我试过了:

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

https://codebeautify.org/hmac-generator

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

另外,还有一些Base64的Onlineconverter。我试过了:

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/zh_CN/dev_guide/DG_QueryString.html
http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_SigningQueryRequest.html
https://mws.amazonservices.com/scratchpad/index.html


回答我自己的问题。

使用Onlineconverter生成SHA256:

我想问题是LF。 Onlineconverter可能有问题。 也许他们使用CRLF。 最好不要尝试使用Onlineconverters检查SHA256。

使用Onlineconverter生成base64:

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

查询以GET签名:

如果要使用GET,则要签名的查询必须看起来像要签名的POST查询。 还有四行。 仅将POST与GET交换。