文本的DES加密 MD5散列值 DSA的数字签名

王朝c#·作者佚名  2006-12-17
宽屏版  字体: |||超大  

文本的DES加密

为了对称加密的安全,我将密码进行封装,先新建一个用于保存密码的类库cl:

using System;

using System.Text ;

namespace cl

{

/// <summary>

/// Class1 的摘要说明。

/// </summary>

public class Class1

{

public Class1()

{

}

public string getiv()

{

string iv="********";//八位

return iv;

}

public string getkey()

{

string key="01160129";//八位

return key;

}

}

}

然后新建asp.net项目(C#)

在 .aspx中

using cl;

namespace test//给一个文本产生一个散列值

{

/// <summary>

/// computehash 的摘要说明。

/// </summary>

public class computehash : System.Web.UI.Page

{

protected System.Web.UI.WebControls.Label Label1;

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

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

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

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

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

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

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

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

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

protected System.Web.UI.WebControls.Label Label2;

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

protected System.Web.UI.WebControls.Label Label3;

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

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

protected System.Web.UI.WebControls.Label Label4;

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

protected System.Web.UI.WebControls.Label Label5;

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

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

{

// 在此处放置用户代码以初始化页面

}

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

override protected void OnInit(EventArgs e)

{

//

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

//

InitializeComponent();

base.OnInit(e);

}

/// <summary>

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

/// 此方法的内容。

/// </summary>

private void InitializeComponent()

{

this.Button2.Click += new System.EventHandler(this.Button2_Click);

this.Button1.Click += new System.EventHandler(this.Button1_Click);

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

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

this.Button5.Click += new System.EventHandler(this.Button5_Click);

this.Button6.Click += new System.EventHandler(this.Button6_Click);

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

}

#endregion

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

{

byte[] bt=UTF8Encoding.UTF8.GetBytes(TextBox1.Text );//UTF8需要对Text的引用

MD5CryptoServiceProvider objMD5;

objMD5=new MD5CryptoServiceProvider ();

byte[] output=objMD5.ComputeHash (bt);

TextBox2.Text =BitConverter.ToString (output);

}

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

{

byte[] bt=UTF8Encoding.UTF8.GetBytes(TextBox1.Text );//UTF8需要对Text的引用

MD5CryptoServiceProvider objMD5;

objMD5=new MD5CryptoServiceProvider ();

byte[] output=objMD5.ComputeHash (bt);

TextBox4.Text =BitConverter.ToString (output);

}

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

{

Class1 cl=new Class1 ();

string iv1=cl.getiv ();

string key1=cl.getkey ();

byte[] iv=UTF8Encoding.UTF8 .GetBytes (iv1);

byte[] key=UTF8Encoding.UTF8 .GetBytes (key1);

byte[] source=UTF8Encoding.UTF8 .GetBytes (TextBox1.Text );

//定义加密对象

DESCryptoServiceProvider objdes;

objdes=new DESCryptoServiceProvider ();

//设置加密对象值

objdes.IV =iv;

objdes.Key =key;

//创建加密器对象

ICryptoTransform objEncryptor;

objEncryptor=objdes.CreateEncryptor (objdes.Key ,objdes.IV );

//准备将加密的文本写入secret.txt中

FileStream objfs;

objfs=new FileStream (MapPath("secret.txt"),FileMode.Create ,FileAccess.Write );

//写入

CryptoStream cryptostream;

cryptostream=new CryptoStream (objfs,objEncryptor,CryptoStreamMode.Write );

cryptostream.Write (source,0,source.Length );

cryptostream.Close ();

}

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

{

Class1 cl=new Class1 ();

string iv1=cl.getiv ();

string key1=cl.getkey ();

byte[] iv=UTF8Encoding.UTF8 .GetBytes (iv1);

byte[] key=UTF8Encoding.UTF8 .GetBytes (key1);

byte[] source=UTF8Encoding.UTF8 .GetBytes (TextBox1.Text );

//定义加密对象

DESCryptoServiceProvider objdes;

objdes=new DESCryptoServiceProvider ();

//设置加密对象值

objdes.IV =iv;

objdes.Key =key;

//创建加密器对象

ICryptoTransform objEncryptor;

objEncryptor=objdes.CreateEncryptor (objdes.Key ,objdes.IV );

//写到内存

MemoryStream ms=new MemoryStream ();

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

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

cs.FlushFinalBlock ();

ms.Close ();

TextBox5.Text =BitConverter.ToString (ms.ToArray ());

}

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

{

DSACryptoServiceProvider objdsa;

objdsa=new DSACryptoServiceProvider ();

byte[] source=UTF8Encoding.UTF8 .GetBytes (TextBox1.Text );

//公开秘钥

TextBox8.Text =objdsa.ToXmlString (false);

//私有秘钥

TextBox9.Text =objdsa.ToXmlString (true);

//数字签名

TextBox7.Text =BitConverter.ToString (objdsa.SignData (source));

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有