using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; // using System.Security; using System.Security.Cryptography; namespace _Des { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public static TripleDESCryptoServiceProvider TDCSP = new TripleDESCryptoServiceProvider(); string Key = string.Empty; string Iv = string.Empty; /// <summary> /// 加密事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { if(this.textBox1.Text!=string.Empty) { //生成随机密钥和向量 TDCSP.GenerateKey(); TDCSP.GenerateIV(); this.textBox2.Text =Convert.ToBase64String(TDCSP.Key); this.textBox3.Text =Convert.ToBase64String(TDCSP.IV); //存储密钥 this.Key = this.textBox2.Text; this.Iv = this.textBox3.Text; //格式化 byte[] data = UnicodeEncoding.Unicode.GetBytes(this.textBox1.Text.Trim()); byte[] data2 = TDCSP.CreateEncryptor().TransformFinalBlock(data, 0, data.Length); this.textBox4.Text = Convert.ToBase64String(data2); } else { MessageBox.Show("请输入要加密的明文!!!"); this.textBox1.Focus(); } } /// <summary> /// 解密事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { if (this.textBox4.Text !=string.Empty) { if (this.Key == this.textBox2.Text && this.Iv == this.textBox3.Text) { byte[] data = Convert.FromBase64String(this.textBox4.Text); byte[] data2 = TDCSP.CreateDecryptor().TransformFinalBlock(data, 0, data.Length); this.textBox5.Text = UnicodeEncoding.Unicode.GetString(data2); } else { MessageBox.Show("密钥改变无法解密"); } } else { MessageBox.Show("没有要解密的文本!"); } } } }