您的位置:首页 > 编程语言 > ASP

asp.net中对字符的加密和解密

2006-08-25 16:06 507 查看

using System;


using System.Collections;


using System.ComponentModel;


using System.Data;


using System.Drawing;


using System.Web;


using System.Web.SessionState;


using System.Web.UI;


using System.Web.UI.WebControls;


using System.Web.UI.HtmlControls;


using System.Security.Cryptography;


using System.Text;


using System.IO;


namespace demo




...{




/**//// <summary>


/// WebForm5 的摘要说明。


/// </summary>


public class WebForm5 : System.Web.UI.Page




...{


protected System.Web.UI.WebControls.TextBox TextBox2;


protected System.Web.UI.WebControls.Button Button3;


protected System.Web.UI.WebControls.Button Button4;


protected System.Web.UI.WebControls.TextBox TextBox1;


protected System.Web.UI.WebControls.TextBox EncryptStr;


protected System.Web.UI.WebControls.TextBox str;




public SymmetricAlgorithm DES_SP;




private void Page_Load(object sender, System.EventArgs e)




...{


//initDes();


}






private SymmetricAlgorithm InitDes()




...{


return new DESCryptoServiceProvider();//用DES


}






string EncryptString(string Value)




...{


ICryptoTransform ct;


MemoryStream ms;


CryptoStream cs;


byte[] byt;


ct = DES_SP.CreateEncryptor(DES_SP.Key, DES_SP.IV);


byt = Encoding.UTF8.GetBytes(Value);


ms = new MemoryStream();


cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);


cs.Write(byt, 0, byt.Length);


cs.FlushFinalBlock();


cs.Close();


return Convert.ToBase64String(ms.ToArray());


}




private string DecryptString(string Value)




...{


ICryptoTransform ct;


MemoryStream ms;


CryptoStream cs;


byte[] byt;


ct = DES_SP.CreateDecryptor((byte[])Session["K"], (byte[])Session["S"]);


byt = Convert.FromBase64String(Value);


ms = new MemoryStream();


cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);


cs.Write(byt, 0, byt.Length);


cs.FlushFinalBlock();


cs.Close();




return Encoding.UTF8.GetString(ms.ToArray());


}






Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码


override protected void OnInit(EventArgs e)




...{


//


// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。


//


InitializeComponent();


base.OnInit(e);


}






/**//// <summary>


/// 设计器支持所需的方法 - 不要使用代码编辑器修改


/// 此方法的内容。


/// </summary>


private void InitializeComponent()




...{


this.Button3.Click += new System.EventHandler(this.Button3_Click);


this.Button4.Click += new System.EventHandler(this.Button4_Click);


this.Load += new System.EventHandler(this.Page_Load);




}


#endregion








private void Button3_Click(object sender, System.EventArgs e)




...{


DES_SP=InitDes();


DES_SP.GenerateKey();


Session["K"]=DES_SP.Key;


TextBox1.Text=Convert.ToBase64String(DES_SP.Key);


DES_SP.GenerateIV();


Session["S"]=DES_SP.IV;


TextBox2.Text=Convert.ToBase64String(DES_SP.IV);




EncryptStr.Text= EncryptString(str.Text);


}




private void Button4_Click(object sender, System.EventArgs e)




...{


try




...{


DES_SP=SetEnc();


EncryptStr.Text=DecryptString(str.Text);


}


catch




...{


Page.RegisterClientScriptBlock("","<script>alert('解密失败!')</script>");


}


}








}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: