找传奇、传世资源到传世资源站!

C#,DES加密文本文件或字符串,WinForm源代码

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

可以用于文本文件或字符串的加密,配置数据库连接字符串时,可以使用到的。
C#,DES加密文本文件或字符串,WinForm源代码 C#语言基础-第1张 using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Security.Cryptography;using System.IO;namespace MyDES{/// <summary>/// Form1 的摘要说明。/// </summary>public class Form1 : System.Windows.Forms.Form{#region 自动生成的代码private System.Windows.Forms.Button button1;private System.Windows.Forms.Button button2;private System.Windows.Forms.OpenFileDialog openFileDialog1;private System.Windows.Forms.TextBox textBox1;private System.Windows.Forms.Button button3;private System.Windows.Forms.TextBox textBox2;private System.Windows.Forms.Button button4;private System.Windows.Forms.Label label1;private System.Windows.Forms.Label label2;private System.Windows.Forms.SaveFileDialog saveFileDialog1;private System.Windows.Forms.Button button5;private System.Windows.Forms.TextBox textBox4;private System.Windows.Forms.Label label3;private System.Windows.Forms.Label label4;/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.Container components = null;public Form1(){//// Windows 窗体设计器支持所必需的//InitializeComponent();//// TODO: 在 InitializeComponent 调用后添加任何构造函数代码//}/// <summary>/// 清理所有正在使用的资源。/// </summary>protected override void Dispose( bool disposing ){if( disposing ){if (components != null) {components.Dispose();}}base.Dispose( disposing );}#region Windows 窗体设计器生成的代码/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){this.button1 = new System.Windows.Forms.Button();this.button2 = new System.Windows.Forms.Button();this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();this.textBox1 = new System.Windows.Forms.TextBox();this.button3 = new System.Windows.Forms.Button();this.textBox2 = new System.Windows.Forms.TextBox();this.button4 = new System.Windows.Forms.Button();this.label1 = new System.Windows.Forms.Label();this.label2 = new System.Windows.Forms.Label();this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();this.button5 = new System.Windows.Forms.Button();this.textBox4 = new System.Windows.Forms.TextBox();this.label3 = new System.Windows.Forms.Label();this.label4 = new System.Windows.Forms.Label();this.SuspendLayout();// // button1// this.button1.Location = new System.Drawing.Point(444, 75);this.button1.Name = "button1";this.button1.Size = new System.Drawing.Size(64, 23);this.button1.TabIndex = 0;this.button1.Text = "选择文件";this.button1.Click = new System.EventHandler(this.button1_Click);// // button2// this.button2.Location = new System.Drawing.Point(332, 163);this.button2.Name = "button2";this.button2.TabIndex = 1;this.button2.Text = "退出";this.button2.Click = new System.EventHandler(this.button2_Click);// // openFileDialog1// this.openFileDialog1.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";this.openFileDialog1.RestoreDirectory = true;this.openFileDialog1.FileOk = new System.ComponentModel.CancelEventHandler(this.openFileDialog1_FileOk);// // textBox1// this.textBox1.Location = new System.Drawing.Point(108, 75);this.textBox1.Name = "textBox1";this.textBox1.Size = new System.Drawing.Size(320, 21);this.textBox1.TabIndex = 2;this.textBox1.Text = "请填写或选择输入文件的完整路径";// // button3// this.button3.Location = new System.Drawing.Point(132, 163);this.button3.Name = "button3";this.button3.TabIndex = 3;this.button3.Text = "加密";this.button3.Click = new System.EventHandler(this.button3_Click);// // textBox2// this.textBox2.Location = new System.Drawing.Point(108, 112);this.textBox2.Name = "textBox2";this.textBox2.Size = new System.Drawing.Size(320, 21);this.textBox2.TabIndex = 4;this.textBox2.Text = "请填写或选择目标文件的完整路径";// // button4// this.button4.Location = new System.Drawing.Point(444, 115);this.button4.Name = "button4";this.button4.Size = new System.Drawing.Size(64, 23);this.button4.TabIndex = 5;this.button4.Text = "选择文件";this.button4.Click = new System.EventHandler(this.button4_Click);// // label1// this.label1.Location = new System.Drawing.Point(36, 75);this.label1.Name = "label1";this.label1.Size = new System.Drawing.Size(72, 24);this.label1.TabIndex = 6;this.label1.Text = "输入文件:";this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;// // label2// this.label2.Location = new System.Drawing.Point(36, 115);this.label2.Name = "label2";this.label2.Size = new System.Drawing.Size(72, 24);this.label2.TabIndex = 7;this.label2.Text = "输出文件:";this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;// // saveFileDialog1// this.saveFileDialog1.Filter = "所有文件(*.*)|*.*|文本文件(*.txt)|*.txt";this.saveFileDialog1.FilterIndex = 2;this.saveFileDialog1.RestoreDirectory = true;// // button5// this.button5.Location = new System.Drawing.Point(236, 163);this.button5.Name = "button5";this.button5.TabIndex = 8;this.button5.Text = "解密";this.button5.Click = new System.EventHandler(this.button5_Click);// // textBox4// this.textBox4.Location = new System.Drawing.Point(108, 35);this.textBox4.Name = "textBox4";this.textBox4.TabIndex = 10;this.textBox4.Text = "12345678";// // label3// this.label3.Location = new System.Drawing.Point(28, 35);this.label3.Name = "label3";this.label3.Size = new System.Drawing.Size(80, 23);this.label3.TabIndex = 12;this.label3.Text = "指定的 Key:";this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;// // label4// this.label4.Location = new System.Drawing.Point(216, 40);this.label4.Name = "label4";this.label4.Size = new System.Drawing.Size(200, 23);this.label4.TabIndex = 13;this.label4.Text = "(密钥必须为64byte位,既8个字符)";// // Form1// this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(536, 205);this.Controls.Add(this.label4);this.Controls.Add(this.label3);this.Controls.Add(this.textBox4);this.Controls.Add(this.button5);this.Controls.Add(this.label2);this.Controls.Add(this.label1);this.Controls.Add(this.button4);this.Controls.Add(this.textBox2);this.Controls.Add(this.button3);this.Controls.Add(this.textBox1);this.Controls.Add(this.button2);this.Controls.Add(this.button1);this.ForeColor = System.Drawing.SystemColors.ControlText;this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;this.MaximizeBox = false;this.Name = "Form1";this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;this.Text = "简单DES加密器";this.Load = new System.EventHandler(this.Form1_Load);this.ResumeLayout(false);}#endregion/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main() {Application.Run(new Form1());}private void Form1_Load(object sender, System.EventArgs e){}private void button1_Click(object sender, System.EventArgs e){if(openFileDialog1.ShowDialog() == DialogResult.OK){this.textBox1.Text=this.openFileDialog1.FileName;}}private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e){}private void button2_Click(object sender, System.EventArgs e){this.Close();}private void button4_Click(object sender, System.EventArgs e){if(saveFileDialog1.ShowDialog() == DialogResult.OK){this.textBox2.Text=this.saveFileDialog1.FileName;}}#endregionprivate void button3_Click(object sender, System.EventArgs e){//加密string Key = this.textBox4.Text;string IV = "12345678";//初始化向量设为"12345678"byte[] desKey=System.Text.ASCIIEncoding.ASCII.GetBytes( Key );byte[] desIV=System.Text.ASCIIEncoding.ASCII.GetBytes( IV );try{if(this.MyEncrypt(this.textBox1.Text,this.textBox2.Text,desKey,desIV))MessageBox.Show("文件加密成功");}catch(System.IO.FileNotFoundException){MessageBox.Show("Error!\n" "输入文件不存在,请检查输入文件的路径。");}catch(System.IO.IOException){MessageBox.Show("Error!\n" "输出文件正在使用,请选择其他文件。\n如果问题依然存在,请关闭该程序,重新运行!");}catch(System.Exception ee){System.Windows.Forms.MessageBox.Show("未知错误!请认真阅读一下说明:\n" ee);}}private void button5_Click(object sender, System.EventArgs e){//解密string Key = this.textBox4.Text;string IV = "12345678";//初始化向量设为"12345678"byte[] desKey=System.Text.ASCIIEncoding.ASCII.GetBytes(Key);byte[] desIV=System.Text.ASCIIEncoding.ASCII.GetBytes(IV);try{if(this.MyDecrypt(this.textBox1.Text,this.textBox2.Text,desKey,desIV))MessageBox.Show("文件解密成功");}catch(System.IO.FileNotFoundException){MessageBox.Show("Error!\n" "输入文件不存在,请检查输入文件的路径。");}catch(System.IO.IOException){MessageBox.Show("Error!\n" "输出文件正在使用,请选择其他文件。\n如果问题依然存在,请关闭该程序,重新运行!");}catch(System.Exception ee){System.Windows.Forms.MessageBox.Show("未知错误!请认真阅读一下说明:\n" ee);}}#region 文件加密函数private bool MyEncrypt(String inName, String outName, byte[] desKey, byte[] desIV){FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);try{fout.SetLength(0);byte[] bin = new byte[100];long rdlen = 0;long totlen = fin.Length;int len;DES des = new DESCryptoServiceProvider();CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write);//Read from the input file, then encrypt and write to the output file.while(rdlen < totlen){len = fin.Read(bin, 0, 100);encStream.Write(bin, 0, len);rdlen = rdlen len;}encStream.Close(); fout.Close();fin.Close();}catch(System.Security.Cryptography.CryptographicException){MessageBox.Show("Error!\n" "密钥输入错误!\n密钥必须为 64 byte,既为8个字符!");fin.Close();fout.Close();return false;}catch(Exception e){MessageBox.Show("Error\n" e);return false;}return true;} #endregion#region 文件解密函数private bool MyDecrypt(String inName, String outName, byte[] desKey, byte[] desIV){FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);try{fout.SetLength(0);byte[] bin = new byte[100];long rdlen = 0;long totlen = fin.Length;int len;DES des = new DESCryptoServiceProvider();CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(desKey, desIV), CryptoStreamMode.Write);//Read from the input file, then encrypt and write to the output file.while(rdlen < totlen){len = fin.Read(bin, 0, 100);encStream.Write(bin, 0, len);rdlen = rdlen len;}encStream.Close(); fout.Close();fin.Close();}catch(System.Security.Cryptography.CryptographicException){MessageBox.Show("Error!\n" "密钥和加密文件不匹配!\n" "可能的原因有:\n" "1.输入的密钥错误,请重新输入和加密文件相对应的正确密钥。\n" "2.输入文件是没有加密过的文件,请选择已经加密的文件进行解密。");fin.Close();fout.Close();return false;}catch(Exception e){MessageBox.Show("Error\n" e);return false;}return true;}#endregion}}

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复