質問: hash.ComputeHash(StringToSignByte); signature=HttpUtility.UrlEncode(Convert.ToBase64String(hashBytes)); } Console.WriteLine("Signature:" + signature); ``` 結果はこのようになりました。検証のためにunicodeエンコーディング以外も使用してハッシュ化しました。 ``` Unicodeエンコーディング: y5Pic9g9nppPCcK1HTEh3MvUyXw%3d UTF8エンコーディング: 8vjVFWLtIruwxdxNvG1CLs1mGVw%3d Shift-JISエンコーディング:8vjVFWLtIruwxdxNvG1CLs1mGVw%3d ASCIIエンコーディング: 8vjVFWLtIruwxdxNvG1CLs1mGVw%3d ``` こちらのサイトの一番下に正しい答えの結果があります。 ``` 秘密鍵:SECRETKEYSAMPLE 文字列:apikey=apikeysample&command=deployvirtualmachine&serviceofferingid=38&templateid=241&zoneid=1 答え:8vjVFWLtIruwxdxNvG1CLs1mGVw%3D ``` あれれ・・・・2つ疑問点が生まれました。 1Uncodeのエンコーディングのみ他と値が全然違うが他のエンコーディングでの値は一致している 2最後のdが小文字で答えと一致しない みなさんの環境では答えのような結果になりますか。 また、なぜこのような検証結果になったのでしょうか。 有識者の方いましたらご教示いただけると幸いです。
回答: 文字列が半角英数字のみの場合、UTF8, Shift-JIS, ASCII は一致します。 また、%3d と %3D は同じです。