using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Security.Cryptography;//最主要的类库是MD5加密中比不可少的类库
public string GetString(string text)
{
//获取加密字段并转化为Byte数组
byte[] by=System.Text.Encoding.Unicode.GetBytes(text.ToCharArray());//将字符数组转化成字节数组
//建立加密服务
MD5CryptoServiceProvider md5=new MD5CryptoServiceProvider();
byte[] bt=md5.ComputeHash(by);//将字节数组加入到MD5中进行加密
//将加密后的数组转化为字段
string bb=System.Text.Encoding.Unciode.GetString(bt);
//输出加密后的字段
Response.Write("MD5普通加密:"+res.ToString ()+"<br>");
//MD5加密密码
string pwd=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("12345","MD5");
//显示加密的密码
Response.Write("MD5密码加密:"+pwd.ToString()+"<br>");
}
其实在ASP.Net编程中,不用调用md5.asp来加密数据。在DotNet中有自带的类:System.Web.Security.HashPasswordForStoringInConfigFile()
public string md5(string str,int code)
{
if(code==16) //16位MD5加密(取32位加密的9~25字符)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5").ToLower().Substring(8,16) ;
}
if(code==32) //32位加密
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5").ToLower();
}
return "00000000000000000000000000000000"; }
简单的使用
头文件:using System.Web.Security;
初始化数据库里的字段
string strPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(this.tbox_Pwd.Text,"MD5");
MD5解密:
因为MD5是不可逆的,只能用加密后的字符进行比较:
如:
string strPwd=FormsAuthentication.HashPasswordForStoringInConfigFile("123","MD5");//是你加密在在数据库的密码
string pwd="123"//是你将要比较的密码
string pwds=System.web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(pwd,"md5");
if(strPwd=pwds)
{
resport.write("成功!");
}