Click here to Skip to main content
Click here to Skip to main content

C# hash creator (modified version from MSDN)

, 2 Aug 2013 CPOL
Rate this:
Please Sign up or sign in to vote.
Easier GetHash function in System.Security.Cryptography.

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)
//Or
string str = GetHash<SHA256>(text, Encoding.UTF8)
//Or
string str = GetHash<SHA512>(text, Encoding.UTF8)
using System.Security.Cryptography;
private static string GetHash<T>(string input, Encoding encoding) where T:HashAlgorithm
{
    //create a Hash object
    T hashobj = (T)HashAlgorithm.Create(typeof(T).ToString());
    // Convert the input string to a byte array and compute the hash. 
    byte[] data = hashobj.ComputeHash(encoding.GetBytes(input));
    // Create a new Stringbuilder to collect the bytes
    StringBuilder sBuilder = new StringBuilder();
    // Loop through each byte of the hashed data  
    // and format each one as a hexadecimal string. 
    for (int i = 0; i < data.Length; i++)
        sBuilder.Append(data[i].ToString("x2"));
    // Return the hexadecimal string. 
    return sBuilder.ToString();
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

steven-_-song
Software Developer
United States United States
No Biography provided

Comments and Discussions

 
GeneralMy vote of 3 Pinprofessionalsatish koladiya27-Aug-13 0:41 
GeneralMy vote of 2 PinmemberJoe Gakenheimer )2-Aug-13 3:56 
GeneralRe: My vote of 2 Pinmembersteven-_-song2-Aug-13 4:01 
GeneralRe: My vote of 2 PinmemberMaster.Man19802-Aug-13 10:33 
QuestionImprove performance PinmemberPetoj872-Aug-13 3:30 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.150327.1 | Last Updated 2 Aug 2013
Article Copyright 2013 by steven-_-song
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid