using System.Security.Cryptography;
using CodeShare.Cryptography;
public static void Main()
string inputValue = "abc";
string expectedResult256 = "BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD";
string actualResult256 = SHA.GenerateSHA256String(inputValue);
string expectedResult512 = "DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F";
string actualResult512 = SHA.GenerateSHA512String(inputValue);
Console.WriteLine("256 Input: " + inputValue);
Console.WriteLine("256 Expected: " + expectedResult256);
Console.WriteLine("256 Actual: " + actualResult256);
Console.WriteLine("256 Matches: " + string.Equals(expectedResult256,actualResult256));
Console.WriteLine("512 Input: " + inputValue);
Console.WriteLine("512 Expected: " + expectedResult512);
Console.WriteLine("512 Actual: " + actualResult512);
Console.WriteLine("512 Matches: " + string.Equals(expectedResult512,actualResult512));
namespace CodeShare.Cryptography
public static string GenerateSHA256String(string inputString)
SHA256 sha256 = SHA256Managed.Create();
byte[] bytes = Encoding.UTF8.GetBytes(inputString);
byte[] hash = sha256.ComputeHash(bytes);
return GetStringFromHash(hash);
public static string GenerateSHA512String(string inputString)
SHA512 sha512 = SHA512Managed.Create();
byte[] bytes = Encoding.UTF8.GetBytes(inputString);
byte[] hash = sha512.ComputeHash(bytes);
return GetStringFromHash(hash);
private static string GetStringFromHash(byte[] hash)
StringBuilder result = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
result.Append(hash[i].ToString("X2"));
return result.ToString();