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>");
}
}
}
}
相关文章推荐
- ASP.NET - URL中参数加密解密操作
- ASP.NET数据库连接字符串的加密与解密
- ASP.NET加密解密
- asp.net用对称密钥为XML文件加密和解密
- Asp.Net C#中除了MD5加密之外还经常用到了AES加密、解密与DES加密、解密,本次先介绍DES的加密及解密。注意的是DES的密匙是8位的。
- ASP.NET C# URL加密解密
- asp.net c#基于DEC的加密与解密
- 转:Asp.Net常用加密解密方法
- ASP.NET 程序安全性 (一) web.config加密与解密
- URL加密解密 (asp.net C#)
- 加密和解密算法 Asp.net
- asp.net 的加密Encode和解密Decode.
- asp.net下XML的加密和解密实现方法
- asp.net常用加密解密方法
- ASP.NET数据库连接字符串的加密与解密
- ASP.NET 2.0 下加密解密算法的封装
- 关于asp.net mvc中的cookie的对象传递以及加密解密
- ASP.NET C# URL加密解密
- ASP.NET常用加密解密方法
- 在ASP.NET MVC环境中使用加密与解密