Introduction
A simple modification to make MSDN Hash generator a more generic and easier function. Note: the code originated from MSDN, I only did some inheritance modification to make it easier to use.
Background
I was about to make a hash generator for fun. However, when I look at the
GetHash
function on MSDN, I don't want to make a new GetHash
function for every type. Therefore, I make this code.
Using the code
To use the function "GetHash<T>(string input, Encoding encoding)
",
just call
string str = GetHash<MD5>(text, Encoding.UTF8)
string str = GetHash<SHA256>(text, Encoding.UTF8)
string str = GetHash<SHA512>(text, Encoding.UTF8)
using System.Security.Cryptography;
private static string GetHash<T>(string input, Encoding encoding) where T:HashAlgorithm
{
T hashobj = (T)HashAlgorithm.Create(typeof(T).ToString());
byte[] data = hashobj.ComputeHash(encoding.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
sBuilder.Append(data[i].ToString("x2"));
return sBuilder.ToString();
}