MD5加密函数
MD5加密函数
using System.Security.Cryptography;
//
//MD5加密函数
//
public string MD5(String str)
{
MD5 md5=new MD5CryptoServiceProvider();
byte[]
data=System.Text.Encoding.Default.GetBytes(str);
byte[] result=https://www.360docs.net/doc/e35744654.html,puteHash(data);
String ret="";
for(int i=0;i<result.Length;i++)
ret+=result[i].ToString("x").PadLeft(2,'0');
return ret;
}
MS的HELP
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 =
https://www.360docs.net/doc/e35744654.html,puteHash(Encoding.Default.GetBytes(inp ut));
// 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 == https://www.360docs.net/doc/e35744654.html,pare(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.
ps:
//SHA-1算法
string password =
System.Web.Security.FormsAuthentication.HashPasswor dForStoringInConfigFile(Password.Text, "SHA1");
//MD5算法
string password1 =
System.Web.Security.FormsAuthentication.HashPasswor dForStoringInConfigFile(Password.Text, "MD5");加密后生成不可逆密文保存到数据库中。用户登录时用加密计算后的密文与数据库中的密码密文比较。一致则通过验证,不一致则返回登录错误。
这种加密算法是不可逆的,所以除了用户自己,其他人无法
得知用户的真实密码内容。SHA-1算法和MD5算法的区别:
SHA-1比MD5多32位密文,所以更安全。由于同样的原因,MD5比SHA-1的运算速度更快。
用md5加密数据库中的用户密码
用md5加密数据库中的用户密码 一些网站往往将用户的账号、密码等信息使用非加密的方式保存到数据库,比如账号使用类型为VarChar的UserCount字段,同样,密码也是采用类型为VarChar 的Password字段。但是,如果我们打算采用MD5加密方式存储密码信息,就必须改变密码字段PassWord的类型为16为二进制方式,这个其实我们也不难理解,因为在前面的介绍中,我们知道加密以后的输出,是使用二进制数组的,所以,这 里必须做相应的改变。 当用户注册成功,正式建立一个账号的时候,数据库中就必须为这个用户增加一条记录。以下的程序代码实现了建立一个账号的功能,在页面中,程序要求用户输入账号、密码等信息,然后,将这些信息作为账号信息存入名为UserCount的数据表,在这个表中,用户密码是使用MD5加密保存的。下面就是实现以上页面 的具体代码: <%@ Import Namespace="System.Security.Cryptography" %> <%@ Import Namespace="System.Text" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %>