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

文本的DES加密 MD5散列值 DSA的数字签名 (转)[@more@]

文本的DES加密
为了对称加密的安全,我将密码进行封装,先新建一个用于保存密码的类库cl:
using System;
using System.Text ;
namespace cl
{
 ///
 /// Class1 的摘要说明。
 ///
 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//给一个文本产生一个散列值
{
 ///
 /// computehash 的摘要说明。
 ///
 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);
 }
 
 ///
 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
 /// 此方法的内容。
 ///
 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));
 }

 }
}




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10790690/viewspace-961272/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10790690/viewspace-961272/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值