HMAC with the SHA256 hash 编码求助

happyer_longlong 2015-09-01 08:36:50
要调用亚马逊的接口api,现在困到签名了,求有经验的大牛给指导指导
求助 RFC 2104-compliant HMAC with the SHA256 hash algorithm using the string above with our "dummy" Secret Access Key: 1234567890
http://docs.aws.amazon.com/zh_cn/AWSECommerceService/latest/DG/rest-signature.html
...全文
258 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
winnowc 2015-09-07
  • 打赏
  • 举报
回复
引用 3 楼 happyer_longlong 的回复:
请问是如何分析找出问题的?
这个也算是加密/解密/签名/hash这一块的常见问题,Unix / Linux 上或者 Mac 上换行符和 Windows 不一致,还有 Tab 和空格的问题。如果确定可见字符和算法没问题,那往往就是不可见字符的问题。 具体到这里,它已经给出了详细的步骤和结果,HMACSHA256 算法如果 key 一致结果就会一致,那么只能是把 key 的字符串转字节的编码问题,或者不可见字符的问题。它这个 key 基本也没有其它办法转换,当作 ASCII 或者 UTF-8 都一样,那就只有不可见字符的问题了。
happyer_longlong 2015-09-07
  • 打赏
  • 举报
回复
请问是如何分析找出问题的?
happyer_longlong 2015-09-07
  • 打赏
  • 举报
回复
引用 1 楼 github_22161131 的回复:

var str = "GET\nwebservices.amazon.com\n/onca/xml\nAWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&AssociateTag=mytag-20&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes%2COffers%2CReviews&Service=AWSECommerceService×tamp=2014-08-18T12%3A00%3A00Z&Version=2013-08-01";
using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes("1234567890")))
{
	var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(str));
	Console.WriteLine(Convert.ToBase64String(hash));
}
输出:
j7bZM0LXZ9eXeZruTqWm2DIvDYVUU3wxPPpp+iXxzQc=
注意输入字符串里面的换行不是 "\r\n" 而是 "\n" 才能一致。
非常感谢,难道你做过这方面吗? 我怎么都没想到是换行导致的问题! 感谢老鸟帮助,估计费了点时间,再次感谢!
winnowc 2015-09-01
  • 打赏
  • 举报
回复

var str = "GET\nwebservices.amazon.com\n/onca/xml\nAWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&AssociateTag=mytag-20&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes%2COffers%2CReviews&Service=AWSECommerceService×tamp=2014-08-18T12%3A00%3A00Z&Version=2013-08-01";
using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes("1234567890")))
{
	var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(str));
	Console.WriteLine(Convert.ToBase64String(hash));
}
输出:
j7bZM0LXZ9eXeZruTqWm2DIvDYVUU3wxPPpp+iXxzQc=
注意输入字符串里面的换行不是 "\r\n" 而是 "\n" 才能一致。

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧