C#: SHA1 String Hash Extension Method

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);
        }

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s