当前位置:  编程技术>.net/c#/asp.net

asp.net实现文本的DES加密、MD5散列值、DSA的数字签名

    来源: 互联网  发布时间:2014-08-30

    本文导语:  本节内容: 文本的DES加密、MD5散列值、DSA的数字签名 1,文本的DES加密 为了对称加密的安全,将密码进行封装,先新建一个用于保存密码的类库cl:   代码示例: using System; using System.Text; namespace cl {     ///     /// Class1...

本节内容:
文本的DES加密、MD5散列值、DSA的数字签名

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

2,然后新建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)
        {
            //UTF8需要对Text的引用
            byte[] bt = UTF8Encoding.UTF8.GetBytes(TextBox1.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)
        {
            //UTF8需要对Text的引用
            byte[] bt = UTF8Encoding.UTF8.GetBytes(TextBox1.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)
        { // www.
            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));
        }
    }
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • asp只采集网站可见文本的正则
  • asp.net中textbox文本框只能输入数字
  • asp.net控制textbox文本框只能输入数字
  • asp.net自动添加文本框或dropdownlist
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net UrlEncode对应asp urlencode的处理方法
  • asp.net实例 定义和使用asp:AccessDataSource
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?
  • ASP和ASP.Net共享Session解决办法
  • 通过socket和asp打交道
  • 犹豫中……,到底是选择ASP,还是JSP?
  • asp 是否 可用applet标签?帮忙!!
  • asp.net判断数据库表是否存在 asp.net修改表名的方法
  • 新人提问:asp+access的程序在linux下怎么改?
  • 用JAVA APPLET做的交互式网页和ASP、PHP做的相比有什么优势呢?
  • asp.net文字水印功能简单代码
  • asp里面可否使用java写的邮件,给30分.
  • asp与Jsp可否在iis中共存的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3