MD5

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(JavaScript)
m (Text replace - "<csharp>" to "<syntaxhighlight lang="csharp">")
Line 9: Line 9:
 
Best placed in your static-only utility class.
 
Best placed in your static-only utility class.
  
<csharp>public  string Md5Sum(string strToEncrypt)
+
<syntaxhighlight lang="csharp">public  string Md5Sum(string strToEncrypt)
 
{
 
{
 
System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding();
 
System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding();

Revision as of 20:43, 10 January 2012

Author: Matthew Wegner

Overview

This C# code snippet generates an MD5 hash for an input string. The formatting will match the output of PHP's md5() function.

C#

Best placed in your static-only utility class.

public  string Md5Sum(string strToEncrypt)
{
	System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding();
	byte[] bytes = ue.GetBytes(strToEncrypt);
 
	// encrypt bytes
	System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
	byte[] hashBytes = md5.ComputeHash(bytes);
 
	// Convert the encrypted bytes back to a string (base 16)
	string hashString = "";
 
	for (int i = 0; i < hashBytes.Length; i++)
	{
		hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, '0');
	}
 
	return hashString.PadLeft(32, '0');
}
</csharp>
 
===JavaScript===
 
... and just in case anyone was wondering. This is also possible using JavaScript. 
 
To use, name your Javascript file something like "md5functions.js". 
In your code, access the function using "hash = md5functions.Md5Sum("string");", where the prefix of the function matches the name of the .js file you created for it. 
 
<javascript>#pragma strict
 
static function Md5Sum(strToEncrypt: String)
{
	var encoding = System.Text.UTF8Encoding();
	var bytes = encoding.GetBytes(strToEncrypt);
 
	// encrypt bytes
	var md5 = System.Security.Cryptography.MD5CryptoServiceProvider();
	var hashBytes:byte[] = md5.ComputeHash(bytes);
 
	// Convert the encrypted bytes back to a string (base 16)
	var hashString = "";
 
	for (var i = 0; i < hashBytes.Length; i++)
	{
		hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, "0"[0]);
	}
 
	return hashString.PadLeft(32, "0"[0]);
}</javascript>
 
You can use SHA1CryptoServiceProvider instead of MD5CryptoServiceProvider if you want to create SHA1 hashes instead of MD5 hashes.
 
==The server side==
 
As noted above, the above unity snippets will return a hash matching the one returned from PHP's md5() function. In case you are using another language on the server side, here are some examples:
 
===Perl===
<perl>use Digest::MD5 qw(md5_hex);
 
my $hashString = md5_hex($stringToHash);
</perl>
 
===PHP===
<perl>
$hashString = md5($stringToHash);
</perl>
 
===Python===
<python>import hashlib
 
def md5Sum(inputString):
   return hashlib.md5(inputString).hexdigest()
</python>
 
===Ruby===
<ruby>require 'digest/md5'
 
def md5Sum(inputString)
    Digest::MD5.hexdigest(inputString)
end
</ruby>
 
===Shell===
Requires that you have the md5sum program installed on the server.
<bash>HASH = `echo "$STRING_TO_HASH" | md5sum | cut -f 1 -d' '` 
</bash>
Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox