2

我的问题是此页面上的步骤 6、7 和 8:http: //docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html

第 6 步和第 7 步很容易遵循。出于说明目的,您可以使用免费的生成器: http: //hash.online-convert.com/sha256-generator

Action=ListUsers&Version=2010-05-08转换为b6359072c78d70ebee1e81adcbab4f01bf2c23245fa365ef83fe8f1f955085e2,就像它说的那样。但是在第 8 步,它说要使用相同的算法,

    POST
/

content-type:application/x-www-form-urlencoded; charset=utf-8
host:iam.amazonaws.com
x-amz-date:20110909T233600Z

content-type;host;x-amz-date
b6359072c78d70ebee1e81adcbab4f01bf2c23245fa365ef83fe8f1f955085e2

根本不转换为3511de7e95d28ecd39e9513b642aee07e54f4941150d8df8bf94b328ef7e55e2。相反,我得到8b483975a604a39ca8882bc11bc0101df17c9ecc64a96206e504babc614fcb37. 这个例子对我来说很不清楚。我可能会错误地解释它,但是如何?

4

2 回答 2

1

我设法解决了这个问题——结果证明我的规范标题是由行分隔的,\r\n而不仅仅是\n. 我从 stringbuilder 更改为仅用 \n 分隔的串联字符串,它工作正常。

于 2014-03-17T07:00:13.527 回答
0

我在这里遇到了同样的问题。尝试后,原因也是\r\n而不是\n。我通过将 \r\n 替换为 \n来解决它,并将整个文件上传到计算哈希字符串而不是复制粘贴!希望这些信息对您有所帮助!

于 2014-09-24T07:10:06.330 回答