using System;
using System.Text;
using System.Security.Cryptography;
public class Test
{
public static string getHashSha256(string text)
{
byte[] bytes = Encoding.UTF8.GetBytes(text);
SHA256Managed hashstring = new SHA256Managed();
byte[] hash = hashstring.ComputeHash(bytes);
string hashString = string.Empty;
foreach (byte x in hash)
{
hashString += String.Format("{0:x2}", x);
}
return hashString;
}
public static void Main()
{
string str = @"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";
Console.WriteLine(getHashSha256(str));
Console.WriteLine("Use \\r\\n: {0}", str.Contains("\r\n"));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dDsKdXNpbmcgU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIGdldEhhc2hTaGEyNTYoc3RyaW5nIHRleHQpCiAgICB7CiAgICAgICAgYnl0ZVtdIGJ5dGVzID0gRW5jb2RpbmcuVVRGOC5HZXRCeXRlcyh0ZXh0KTsKICAgICAgICBTSEEyNTZNYW5hZ2VkIGhhc2hzdHJpbmcgPSBuZXcgU0hBMjU2TWFuYWdlZCgpOwogICAgICAgIGJ5dGVbXSBoYXNoID0gaGFzaHN0cmluZy5Db21wdXRlSGFzaChieXRlcyk7CiAgICAgICAgc3RyaW5nIGhhc2hTdHJpbmcgPSBzdHJpbmcuRW1wdHk7CiAgICAgICAgZm9yZWFjaCAoYnl0ZSB4IGluIGhhc2gpCiAgICAgICAgewogICAgICAgICAgICBoYXNoU3RyaW5nICs9IFN0cmluZy5Gb3JtYXQoInswOngyfSIsIHgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gaGFzaFN0cmluZzsKICAgIH0KICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXN0cmluZyBzdHIgPSBAIlBPU1QKLwoKY29udGVudC10eXBlOmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD11dGYtOApob3N0OmlhbS5hbWF6b25hd3MuY29tCngtYW16LWRhdGU6MjAxMTA5MDlUMjMzNjAwWgoKY29udGVudC10eXBlO2hvc3Q7eC1hbXotZGF0ZQpiNjM1OTA3MmM3OGQ3MGViZWUxZTgxYWRjYmFiNGYwMWJmMmMyMzI0NWZhMzY1ZWY4M2ZlOGYxZjk1NTA4NWUyIjsKCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoZ2V0SGFzaFNoYTI1NihzdHIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiVXNlIFxcclxcbjogezB9Iiwgc3RyLkNvbnRhaW5zKCJcclxuIikpOwoJfQp9