ASP.NET中MD5加密實(shí)例講解
Posted on 2007-05-02 11:18 停留的風(fēng) 閱讀(2125) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): .NET技巧特輯<%@ Page Language="C#" ContentType="text/html"%>
<%@ Import Namespace="System"%>
<script language="C#" runat="server">
void Page_Load(Object sender,EventArgs e){
//獲取要加密的字段,并轉(zhuǎn)化為Byte[]數(shù)組
byte[] data=System.Text.Encoding.Unicode
.GetBytes(source.Text.ToCharArray());
//建立加密服務(wù)
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
//加密Byte[]數(shù)組
byte[] result= md5.ComputeHash(data);
//將加密后的數(shù)組轉(zhuǎn)化為字段
string sResult=System.Text.Encoding.Unicode.GetString(result);
//顯示出來(lái)
sha1_1.Text="MD5普通加密:"+sResult.ToString()+"<br/>";
//作為密碼方式加密
string EnPswdStr=System.Web.Security.FormsAuthentication.
HashPasswordForStoringInConfigFile(source.Text.ToString(),"MD5");
//顯示出來(lái)
sha1_2.Text="MD5密碼加密:"+EnPswdStr+"<br/>";
}
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>測(cè)試</title>
</head>
<body>
<h3>SHA1加密</h3>
<form runat="server">
<asp:label id="sha1_1" runat="server"></asp:label>
<asp:label id="sha1_2" runat="server"></asp:label>
<asp:textbox ID="source" runat="server" TextMode="SingleLine" Text="test" AutoPostBack="true" />
(回車(chē))
</form>
</body>
</html>
其實(shí)在ASP.Net編程中,不用調(diào)用md5.asp來(lái)加密數(shù)據(jù)。在DotNet中有自帶的類(lèi):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"; }
簡(jiǎn)單的使用
頭文件:using System.Web.Security;
初始化數(shù)據(jù)庫(kù)里的字段
string strPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(this.tbox_Pwd.Text,"MD5");
ASP.NET中加密與解密QueryString的方法
轉(zhuǎn)載;
1.加密。
Response.Redirect("DetailInfo.aspx?id=" + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes("sp10006")).Replace("+","%2B"));
2.解密。
string ID = System.Text.Encoding.Default.GetString(Convert.FromBase64String(Request.QueryString["id"].ToString().Replace("%2B","+")));