MD5加密函数

MD5加密函数
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" %>