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加密和解密方法。
privatevoidDES_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);}}privatevoidDES_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加密和解密方法。
privatevoidRSA_Encrypt_button_Click(object sender,EventArgs e){try{
textBox10.Text = EncryptionManager.RSAEncryption(textBox9.Text,textBox7.Text);}catch(Exception ex){
MessageBox.Show(ex.Message);}}privatevoidRSA_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加密和解密方法。
privatevoidBase64_Encrypt_button_Click(object sender,EventArgs e){try{
textBox12.Text = EncryptionManager.Base64Encrypt(textBox11.Text);}catch(Exception ex){
MessageBox.Show(ex.Message);}}privatevoidBase64_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加密方法,由于不能解密,就不设解密按钮了。
privatevoidSHA_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加密方法,同样由于不能解密,就不设解密按钮了。
privatevoidMD5_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
需要类库源代码的同学,也可以留下邮箱~~~
版权归原作者 Fan Felix 所有, 如有侵权,请联系我们删除。