⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 这个是C#编写的DES加解密和RSA加解密的成学
💻 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 + -