下面这段复制于msdn,它演示了如何进行加密以及对字串进行密码验证的过程。
通常我们在开发过程中,对新建立用户的密码进行MD5加密后存储;而后,用户登陆时,把用户输入的密码再次进行MD5加密后和数据库中存储的加密密码对比,以确认用户身份。
需要注意的是:MD5加密不可逆(解密)。
using
System;
using
System.Security.Cryptography;
using
System.Text;

class
Example

...
{
// Hash an input string and return the hash as
// a 32 character hexadecimal string.
static string getMd5Hash(string input)

...{
// Create a new instance of the MD5CryptoServiceProvider object.
MD5 md5Hasher = MD5.Create();

// Convert the input string to a byte array and compute the hash.
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));

// Create a new Stringbuilder to collect the bytes
// and create a string.
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();
}

// Verify a hash against a string.
static bool verifyMd5Hash(string input, string hash)

...{
// Hash the input.
string hashOfInput = getMd5Hash(input);

// Create a StringComparer an comare the hashes.
StringComparer comparer = StringComparer.OrdinalIgnoreCase;

if (0 == comparer.Compare(hashOfInput, hash))

...{
return true;
}
else

...{
return false;
}
}


static void Main()

...{
string source = "Hello World!";

string hash = getMd5Hash(source);

Console.WriteLine("The MD5 hash of " + source + " is: " + hash + ".");

Console.WriteLine("Verifying the hash...");

if (verifyMd5Hash(source, hash))

...{
Console.WriteLine("The hashes are the same.");
}
else

...{
Console.WriteLine("The hashes are not same.");
}

}
}
//
This code example produces the following output:
//
//
The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
//
Verifying the hash...
//
The hashes are the same.
通常我们在开发过程中,对新建立用户的密码进行MD5加密后存储;而后,用户登陆时,把用户输入的密码再次进行MD5加密后和数据库中存储的加密密码对比,以确认用户身份。
需要注意的是:MD5加密不可逆(解密)。





















































































