C#集成数据加密算法,包含DES、RSA、Base64、SHA、MD5算法,轻松实现数据加密解密需求

C#集成数据加密算法,包含DES、RSA、Base64、SHA、MD5算法

在需要使用配置文件的工控软件中,往往需要在配置文件和数据库中对一些数据加密,即对一串数据进行加密算法后输出复杂符号和字符的形式,让非相关人员无法识别原有数据,从而对数据或数据库进行相应的保护,这往往也是公司安全部门的基本要求。
网上写加密算法的文章很多,本人由于要在多项目中使用加密算法,本着怎么方便怎么来的原则,将网上的主流算法整理了一下,做成了dll类库,只要在新项目中加载类库,就能轻松的加密和解密数据,不用每次再去查找复制代码了,某种意义上也算一劳永逸了。
dll中包括了对称加密算法DES,非对称加密算法RSA,不可逆算法SHA、MD5,以及不能称为算法的Base64(因为不需要密匙,加密和解密简单,使用场合还是很多的),种类基本还是比较全的。至于几种算法的含义和具体原理,这里就不多说了,感兴趣的小伙伴可以上网搜下,这里只介绍使用案例,毕竟应用才是大部分小伙伴的迫切需求(毕竟时间有限,项目的紧迫让人很难追根究底,功能实现才是王道是不现实如此,勿喷~~~)。

一、项目创建

项目以winform为例,创建一个Winfrom项目,命名为EncryptionDemo,在依赖库中导入类库Encryption,Encryption类库的下载链接在文底。在这里插入图片描述
在界面上简单画几个控件,做测试用,如下图:
简单界面

二、DES加密算法

DES,全称Data Encryption Standard,是一种对称加密算法,安全性比较高。
在加密DES_Encrypt和解密DES_Decrypt按钮下,分别简单的引用类库中的DES加密和解密方法。

      private void DES_Encrypt_button_Click(object sender, EventArgs e)
        {
    
    
            try
            {
    
    
                textBox6.Text = EncryptionManager.DESEncrypt(textBox3.Text, textBox1.Text, textBox2.Text);
            }
            catch (Exception ex)
            {
    
    
                MessageBox.Show(ex.Message);
            }
        }

        private void DES_Decrypt_button_Click(object sender, EventArgs e)
        {
    
    
            try
            {
    
    
                textBox6.Text = EncryptionManager.DESDecrypt(textBox6.Text, textBox4.Text, textBox5.Text);
            }
            catch (Exception ex)
            {
    
    
                MessageBox.Show(ex.Message);
            }
        }

随后在界面上输入密匙、向量以及要加密的数据,点击DES_Encrypt按钮,在解密数据框中会得到加密后数据,如图。
在这里插入图片描述
要解密的话只需要输入相同的密匙和向量,即会对解密数据框中的数据进行解密输出,如下图。
在这里插入图片描述

二、RSA加密算法

按顺序下面是RSA算法,RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,多用于数据加密和数字签名。
同样的在加密RSA_Encrypt和解密RSA_Decrypt按钮下,引用Encryption类库中的RSA加密和解密方法。

      private void RSA_Encrypt_button_Click(object sender, EventArgs e)
        {
    
    
            try
            {
    
    
                textBox10.Text = EncryptionManager.RSAEncryption(textBox9.Text,textBox7.Text);
            }
            catch (Exception ex)
            {
    
    
                MessageBox.Show(ex.Message);
            }
        }

        private void RSA_Decrypt_button_Click(object sender, EventArgs e)
        {
    
    
            try
            {
    
    
                textBox10.Text = EncryptionManager.RSADecrypt(textBox10.Text, textBox8.Text);
            }
            catch (Exception ex)
            {
    
    
                MessageBox.Show(ex.Message);
            }
        }

随后在界面上输入密匙容器的名字和需要加密的数据,点击RSA_Encrypt按钮,在解密数据框中会得到加密后数据,如图。
在这里插入图片描述
同样需要解密的话,只需要输入相同的密匙容器,点击RSA_Decrypt按钮,就会对解密数据框中的数据进行解密,如图。

在这里插入图片描述

三、Base64加密算法

Base64从本质来说,其实并不是加密算法,只是一种编码方式而已,Base64的"加解密"也不叫加密解密,而是编码解码,但是现在一般都把它归为加密算法。而且对安全级别不是要求很高的情况下,用它往往会比较合适,其实还是加解密方便,方便使用。
同样的在加密Base64_Encrypt和解密Base64_Decrypt按钮下,引用Encryption类库中的Base64加密和解密方法。

        private void Base64_Encrypt_button_Click(object sender, EventArgs e)
        {
    
    
            try
            {
    
    
                textBox12.Text = EncryptionManager.Base64Encrypt(textBox11.Text);
            }
            catch (Exception ex)
            {
    
    
                MessageBox.Show(ex.Message);
            }
        }

        private void Base64_Decrypt_button_Click(object sender, EventArgs e)
        {
    
    
            try
            {
    
    
                textBox12.Text = EncryptionManager.Base64Decrypt(textBox12.Text);
            }
            catch (Exception ex)
            {
    
    
                MessageBox.Show(ex.Message);
            }
        }

随后在界面上只要输入加密的数据就可以了,点击Base64_Encrypt按钮,在解密数据框中会得到加密后数据,如图。
在这里插入图片描述
需要解密的话,直接点击Base64_Decrypt按钮就行,就会对解密数据框中的数据进行解密,如图。
在这里插入图片描述

四、SHA加密算法

SHA,全称SecureHashAlgorithm,是一种不可逆数据加密算法,无法解密,常用作数字签名来验证文件的有效性。
同样的在加密SHA_Encrypt按钮下,引用Encryption类库中的SHA加密方法,由于不能解密,就不设解密按钮了。

        private void SHA_Encrypt_button_Click(object sender, EventArgs e)
        {
    
    
            try
            {
    
    
                textBox14.Text = EncryptionManager.SHA1Encrypt(textBox13.Text);
            }
            catch (Exception ex)
            {
    
    
                MessageBox.Show(ex.Message);
            }
        }

随后在界面上只要输入加密的数据就可以了,点击SHA_Encrypt按钮,在不可逆加密数据框中会得到加密后数据,如图。
在这里插入图片描述

五、MD5加密算法

MD5全称是message-digest algorithm 5,简单的说就是单向的加密,也就是说无法根据密文推导出明文,也是一种不可逆加密算法。
同样的在加密MD5_Encrypt按钮下,引用Encryption类库中的MD5加密方法,同样由于不能解密,就不设解密按钮了。

        private void MD5_Encrypt_button_Click(object sender, EventArgs e)
        {
    
    
            try
            {
    
    
                textBox16.Text = EncryptionManager.MD5Encrypt(textBox15.Text);
            }
            catch (Exception ex)
            {
    
    
                MessageBox.Show(ex.Message);
            }
        }

随后在界面上同样只要输入加密的数据就可以了,点击MD5_Encrypt按钮,在不可逆加密数据框中会得到加密后数据,如图。
在这里插入图片描述

结语

以上就是C#中几种加密算法的集成及应用介绍,运用十分简单,导入Encryption类库,傻瓜式引用指定的方法,就能轻松的加密解密数据。
Encryption类库下载地址:https://download.csdn.net/download/weixin_44239774/87266050
文中创建的demo,可以充当加密解密小工具使用,需要的可以前往以下链接下载:https://download.csdn.net/download/weixin_44239774/87266103
需要类库源代码的同学,也可以留下邮箱~~~

猜你喜欢

转载自blog.csdn.net/weixin_44239774/article/details/128270007