网页功能: 加入收藏 设为首页 网站搜索  
文本的DES加密 MD5散列值 DSA的数字签名
发表日期:2004-10-23作者:china2001ok[转贴] 出处:CSDN  

文本的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));
  }

  }
}

 

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 文本的DES加密 MD5散列值 DSA的数字签名
本类热点文章
  简单的多人聊天(C#.Socket)
  C#的office操作[word&Excel]
  在C#中调用VBScript、JavaScript等脚本..
  在C#中调用VBScript、JavaScript等脚本..
  C#程序编码规范
  C#程序编码规范
  使用c#获得cpu,硬盘的序列号
  在Linux上运行C#
  在Linux上运行C#
  弹出窗口杀手
  弹出窗口杀手
  算术表达式解析器的实现思路
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2024 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00411