📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace EncryptAndDecrypt
{
public partial class Form1 : Form
{
private bool flag = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
if (flag == true)
{
radioRSA.Select();
}
else
radioDES.Select();
labDESKey.Visible = false;
txtDESKey.Visible = false;
}
private void btnBrow1_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
}
private void btnBrow2_Click(object sender, EventArgs e)
{
saveFileDialog1.ShowDialog();
}
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
txtOpenFile.Text = openFileDialog1.FileName;
}
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
txtSaveFile.Text = saveFileDialog1.FileName;
}
private void radioRSA_CheckedChanged(object sender, EventArgs e)
{
flag = true;
}
private void radioDES_CheckedChanged(object sender, EventArgs e)
{
flag = false;
}
private void btnEncrypt_Click(object sender, EventArgs e)
{
if (flag == true)
{
//RSA加密
string InputFilename = txtOpenFile.Text;
string OutputFilename = txtSaveFile.Text;
// Encrypt the file.
if (RSA.EncryptFile(InputFilename, OutputFilename))
{
MessageBox.Show("加密成功!");
}
else
MessageBox.Show("加密失败!");
}
else
{
//DES加密
// Get the Key for the file to Encrypt and Decrypt.
// For additional security Pin the key.
string SecretKey = DES.GenerateKey();
// For additional security Pin the key.
GCHandle gch = GCHandle.Alloc(SecretKey, GCHandleType.Pinned);
// Encrypt the file.
string InputFilename = txtOpenFile.Text;
string OutputFilename = txtSaveFile.Text;
if (DES.EncryptFile(InputFilename, OutputFilename, SecretKey))
{
MessageBox.Show("加密成功!");
labDESKey.Visible = true;
txtDESKey.Visible = true;
txtDESKey.Text = SecretKey;
}
else
MessageBox.Show("加密失败!");
gch.Free();
}
}
private void btnDecrypt_Click(object sender, EventArgs e)
{
if (flag == true)
{
//RSA解密
string InputFilename = txtOpenFile.Text;
string OutputFilename = txtSaveFile.Text;
//Decrypt the File
if (RSA.DecryptFile(InputFilename, OutputFilename))
{
MessageBox.Show("解密成功!");
}
else
MessageBox.Show("解密失败!");
}
else
{
//DES解密
// For additional security Pin the key.
string SecretKey = txtDESKey.Text;
// For additional security Pin the key.
GCHandle gch = GCHandle.Alloc(SecretKey, GCHandleType.Pinned);
string sInputFilename = txtOpenFile.Text;
string sOutputFilename = txtSaveFile.Text;
//Decrypt the File
if (DES.DecryptFile(sInputFilename, sOutputFilename, SecretKey))
{
MessageBox.Show("解密成功!");
}
else
MessageBox.Show("解密失败,请确认你的解密密钥是否正确!");
// Remove the Key from memory.
DES.ZeroMemory(gch.AddrOfPinnedObject(), SecretKey.Length * 2);
gch.Free();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -