📄 form1.cs
字号:
using System;
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Security;
using System.Security.Cryptography;
using System.IO;
using System.Text;
namespace 文件加密
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
if (this.textBox1.Text != "" && this.textBox2.Text != "")
{
statusBar1.Visible = true;
statusBar1.Text = "正在加密文件,请等待.....";
if (EncryptFile(this.textBox1.Text, this.textBox2.Text, this.key()))
{
statusBar1.Text = "加密完成。";
MessageBox.Show("加密成功!");
}
statusBar1.Visible = false;
}
else
{
MessageBox.Show("文件路径不能为空");
}
}
private void button4_Click(object sender, EventArgs e)
{
if (this.textBox1.Text != "" && this.textBox2.Text != "")
{
statusBar1.Visible = true;
statusBar1.Text = "正在解密文件,请等待.....";
if (DecryptFile(this.textBox1.Text, this.textBox2.Text, this.key()))
{
statusBar1.Text = "解密完成。";
MessageBox.Show("解密成功!");
}
statusBar1.Visible = false;
}
else
{
MessageBox.Show("文件路径不能为空");
}
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.ShowDialog();
string filename = openFileDialog1.FileName;
int i = filename.LastIndexOf(".");
if (i != -1)
{
string filetype = filename.Substring(filename.LastIndexOf("."));
if (this.radioButton1.Checked)
{
filename = filename.Replace("(解密文件)", "");
textBox2.Text = filename.Substring(0, filename.LastIndexOf(".")) + "(加密文件)" + filetype;
}
else
{
filename = filename.Replace("(加密文件)", "");
textBox2.Text = filename.Substring(0, filename.LastIndexOf(".")) + "(解密文件)" + filetype;
}
}
if (filename != "")
{
textBox1.Text = openFileDialog1.FileName;
}
}
private void button5_Click(object sender, EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.ShowDialog();
if (saveFileDialog1.FileName != "")
{
this.textBox2.Text = saveFileDialog1.FileName;
}
}
/// <summary>
/// 加密
/// </summary>
/// <param name="filePath">输入路径</param>
/// <param name="savePath">输出路径</param>
/// <param name="keyStr">密钥</param>
/// <returns></returns>
public bool EncryptFile(string filePath, string savePath, string keyStr)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
if (keyStr == "")
MessageBox.Show("请输入密钥!");
FileStream fs = File.OpenRead(filePath);
byte[] inputByteArray = new byte[fs.Length];
fs.Read(inputByteArray, 0, (int)fs.Length);
fs.Close();
byte[] keyByteArray = Encoding.Default.GetBytes(keyStr);
des.Key = keyByteArray;
des.IV = keyByteArray;
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
fs = File.OpenWrite(savePath);
foreach (byte b in ms.ToArray())
{
fs.WriteByte(b);
}
fs.Close();
cs.Close();
ms.Close();
return true;
}
/// <summary>
/// 解密
/// </summary>
/// <param name="filePath">输入路径</param>
/// <param name="savePath">输出路径</param>
/// <param name="keyStr">密钥</param>
/// <returns>string</returns>
public bool DecryptFile(string filePath, string savePath, string keyStr)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
if (keyStr == "")
MessageBox.Show("请输入密钥!");
FileStream fs = File.OpenRead(filePath);
byte[] inputByteArray = new byte[fs.Length];
fs.Read(inputByteArray, 0, (int)fs.Length);
fs.Close();
byte[] keyByteArray = Encoding.Default.GetBytes(keyStr);
des.Key = keyByteArray;
des.IV = keyByteArray;
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
fs = File.OpenWrite(savePath);
foreach (byte b in ms.ToArray())
{
fs.WriteByte(b);
}
fs.Close();
cs.Close();
ms.Close();
return true;
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
this.button3.Enabled = true;
this.button4.Enabled = false;
textBox3.Text = null;
textBox1.Text = "";
textBox2.Text = "";
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true)
{
this.button3.Enabled = false;
this.button4.Enabled = true;
textBox3.Text = null;
textBox1.Text = "";
textBox2.Text = "";
}
}
/// <summary>
/// 产生密钥
/// </summary>
/// <returns>string</returns>
public string key()
{
if (textBox3.Text == "")
MessageBox.Show("请输入密钥");
string keyString = textBox3.Text;
if (keyString.Length > 8)
{
return keyString.Substring(0, 8);
}
if (keyString.Length < 8)
{
int i = 8 - keyString.Length;
for (int n = 1; n <= i; n++)
{
keyString += " ";
}
return keyString;
}
return keyString;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -