私は公式の Amazon S3 REST APIドキュメント (こちら) に従っていますが、例に示されているのと同じ承認値を計算する際に問題が発生しています。最初の例で示した base64 HMAC-SHA1 ハッシュは次のとおりです。
xXjDGYUmKxnwqr5KXNPGldn5LbA=
しかし、私は思いつき続けます:
bWq2s1WEIj+Ydj0vQ697zp+IXMU=
ここで髪をかきむしっています。何が間違っている可能性がありますか?
彼らの最初の例から:
static string TestS3(string key, string request)
{
var hash = new HMACSHA1(Encoding.UTF8.GetBytes(key));
var data = hash.ComputeHash(Encoding.UTF8.GetBytes(request));
return Convert.ToBase64String(data);
}
static void Main(string[] args)
{
string key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";
string request = "GET\n\n\nTue, 27 Mar 2007 19:36:42 +0000\n/johnsmith/photos/puppy.jpg";
Console.Write(TestS3(key, request));
}