In a recent project I needed the ability to take an incoming string value and calculate its SHA1 Hash in order to tell if the value had been altered in some way. Instead of creating a special utility class to accomplish this I figured a clean solution would be to just add an extension method to the String class. Here is what I came up with.
///
/// Calculates the SHA1 hash and returns it as a base64 string.
///
/// Source string to hash
/// Base64 Hash or null.
/// Occurs when value or key is null or empty.
public static string GetSha1Hash(this string value)
{
if (string.IsNullOrEmpty(value))
throw new ArgumentException("String is empty and not hashable.");
Byte[] bytes = Encoding.UTF8.GetBytes(value);
Byte[] computedHash = new SHA1CryptoServiceProvider().ComputeHash(bytes);
return Convert.ToBase64String(computedHash);
}
Published by