Click here to Skip to main content
Click here to Skip to main content
Go to top

MD5SUM FOR C#

, 5 Jan 2005
Rate this:
Please Sign up or sign in to vote.
How to compute the same hash as MD5SUM does (HEX).

Reason For This Howto

As you may know the MD5CryptoService, which the .NET Framework uses, doesn't create an md5 sum's string. So you only have the pure byte[] which isn't that useful if you want to use it in a database or on your Web Server to compare the sum with your file's sum! So, if many people have no idea how to get their sum into the right way, here's my howto to create the same sums like "md5sum" does:

Code

This is the second version with the Hex-bug fixed.

using System.Security.Cryptography;
.....
.....
string MD5SUM(byte[] FileOrText) //Output: String<-> Input: Byte[] //
{
return BitConverter.ToString(new 
    MD5CryptoServiceProvider().ComputeHash(FileOrText)).Replace("-","").ToLower();
} 

// Quite simple isn't it? I hope you enjoyed this tiny article and 
//I hope I could help ya! //

You can use this example of course for SHA1 as well, just change the MD5CryptoServiceProvider to SHA1CryptoServiceProvider.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Max Gattringer

Austria Austria
I am Max Gattringer an Austrian student - I've got a passion for programming C#, cryptograpy and nearly everything concerning PCs Big Grin | :-D

Comments and Discussions

 
GeneralThis is great! Pinmembermondokat3-Apr-07 10:27 
GeneralMD5 PinmemberARROLLO2-Jan-06 14:12 
GeneralPerformance Pinmemberaxelriet2-Feb-05 16:03 
GeneralYeah, you're right ;-) PinsussAnonymous7-Jan-05 12:36 
GeneralAnother suggestion PinmemberMrEyes5-Jan-05 23:09 
GeneralJust two suggestions PinmemberDennis C. Dietrich5-Jan-05 10:58 
GeneralRe: Just two suggestions PinmemberRobert Rohde5-Jan-05 20:09 
GeneralRe: Just two suggestions PinmemberDennis C. Dietrich6-Jan-05 1:08 
Robert Rohde wrote:
In general I agree that StringBuilder is faster. But in this case the calculation of the MD5 value will by far run longer than the string concatenation, so the change will not be significant.
First rule for optimizing: Only optimize what is relevant for optimization (90-10 rule).

 
I know what you mean and personally I would even apply another rule before it comes to the 90-10 rule you quoted (that would be the 'optimization last' rule of XP). However, I don't think that should be used in this case because this is about .NET best practices rather than general purpose rules. Consider the case that you want to calculate the MD5 hash not for one file (or a few big files) but for a bunch of small files. Calculating the MD5 hash for a few ten thousand files would lead to a few hundred thousand unnecessary memcopy operations during the string creation. And I'd say that is significant (although you might argue that it wouldn't matter on today's CPUs).
 
Best regards from Schöneberg
Dennis
GeneralRe: Just two suggestions PinmemberJeffrey Sax6-Jan-05 13:52 
GeneralRe: Just two suggestions PinmemberMax Gattringer7-Jan-05 12:52 

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 | Mobile
Web04 | 2.8.140922.1 | Last Updated 5 Jan 2005
Article Copyright 2005 by Max Gattringer
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid