作者:未知

文本的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的数字签名相关推荐

  1. PHP 文件校验 文件的 MD5 散列值

    PHP   MD5 散列值 应用场景: 1.校验文件的完整性       可用于服务器文件的备份处理. 2.检验文件的重复性      去除服务器上传文件的重复,占用额外空间的问题. 3.校验文件是否 ...

  2. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)...

    2019独角兽企业重金招聘Python工程师标准>>> 数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊-- ...

  3. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)

    数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们--帕蒂.道格.苏珊--每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4 ...

  4. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)——Web网络系列学习笔记

    数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们--帕蒂.道格.苏珊--每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4 ...

  5. 对称加密、非对称加密和散列算法

    一.什么是对称加密技术? 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥.信息接收双方都需事先知道密匙和加解密算法,且其密匙是相同的,之后便是对数据进行加解密了.对称加密算法用 ...

  6. SHA1/MD5散列算法实现(C语言)

    一.实验目的   通过实际编程了解MD5算法的加密和解密过程,加深对Hash算法的认识.   二.实验原理  Hash函数是将任意长的数字串转换成一个较短的定长输出数字串的函数,输出的结果称为Hash ...

  7. 通俗解释对称加密、非对称加密、散列算法与PKI

    这是我前些年写在51的,现在转过来,其实是CISSP的学习笔记,用自己的语言组织起来的,用通俗的话说明对称加密.非对称加密.散列算法.PKI(CA)到底都是干啥的.OK,进入主题: 密码学要解决的问题 ...

  8. Shiro框架:Shiro简介、登陆认证入门程序、认证执行流程、使用自定义Realm进行登陆认证、Shiro的MD5散列算法

    一.Shiro介绍: 1.什么是shiro: (1)shiro是apache的一个开源框架,是一个权限管理的框架,实现用户认证.用户授权. (2)spring中有spring security,是一个 ...

  9. MD5散列算法原理及实现

    目录 一.什么是MD5 二.MD5的功能 三.抗膨胀性 四.可逆性 五.MD5是 加密算法吗? 六.MD5用途 1.防止被篡改 2.防止明文读取. 3.防止抵赖 七.MD5算法过程 主要过程描述 第一 ...

最新文章

  1. 竞赛规则补充说明 | 无线节能组车模
  2. ORB-SLAM2地图存储加载系统
  3. 深度解读!阿里统一应用管理架构升级的教训与实践
  4. 游戏服务器端引擎——DogSE的设计
  5. linux 网络编程学习
  6. CCIR601和CCIR656标准的区别
  7. Android studio如何写滚动视图
  8. Bandicam_v4.6.5便携特别版 高清视频录制工具
  9. NG-ZORRO 7.3.0 发布,Ant Design 的 Angular 实现
  10. java逐行读取文件_Java逐行读取文件
  11. JNI新旧两种方式不冲突,可以共存
  12. find命令之xargs
  13. ADOBE PS镜像某个图层
  14. 阿里70后程序员的 26 个职场感悟
  15. 一元三次方程求解matlab_为什么一元n次代数方程必有n个根?
  16. py交易----实验吧
  17. JS统计页面访问时长
  18. 汽车基础软件「众生相」
  19. 十年带队经验,万字长文分享:如何管理好一个程序员团队?
  20. 数据类型与数据结构 文件读写及绘图

热门文章

  1. Don‘t entangle those useless things
  2. 2014.4新版uboot启动流程分析
  3. 奇葩错误:“假缩进”(python专属)
  4. 在Ubuntu 16.04.5 LTS上使用python第三方库QRCode 6.0生成二维码实录
  5. ATS日志格式中的Squid-和Netscape-格式的缓存结果码
  6. C++派生类与基类构造函数调用次序
  7. Windows 和 Linux 应用程序从上到下调用层次比较
  8. Java中创建泛型数组
  9. 在 Ubuntu Natty 中解除系统托盘限制
  10. [CQOI2014]数三角形 组合数 + 容斥 + gcd