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)
throw new ArgumentException("String is empty and not hashable.");
Byte bytes = Encoding.UTF8.GetBytes(value);
Byte computedHash = new SHA1CryptoServiceProvider().ComputeHash(bytes);