DES加密解密函数

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Text;
using System.IO;
using System.Security.Cryptography;

 

private   void  menuItem13_Click( object  sender, System.EventArgs e)
        
{
        
//对应加密函数DSACrypData(string  strcrypto)
            string strcrypto=richTextBox1.Text;
            DSACrypData(strcrypto);
        }


            
public   static   void  DSACrypData( string   strcrypto)
            
{
                
//先要将字符串转换为字节数组,这与编码有关。
                string str = "this is a test.";
                
byte[] bytes = Encoding.ASCII.GetBytes(str);
                
//选择签名方式,有RSA和DSA
                DSACryptoServiceProvider dsac = new DSACryptoServiceProvider();
                
byte[] sign = dsac.SignData(bytes);
                
//sign便是出来的签名结果。

                
//下面是认证了
                DSACryptoServiceProvider dsac2 = new DSACryptoServiceProvider();
                dsac2.FromXmlString(dsac.ToXmlString(
false));
                
bool ver = dsac2.VerifyData(bytes, sign);
                
if (ver) 
                
{
                    MessageBox.Show(
"通过");
                }
 
                
else 
                
{
                    MessageBox.Show(
"不能通过");
                }

            }


        
private   void  menuItem17_Click( object  sender, System.EventArgs e)
        
{
            
//对应加密函数DSACrypData(string  strcrypto)
            string strData=richTextBox1.Text;
            richTextBox2.Text
=DESEncodeData(strData);
        }

        
public   static   string  DESEncodeData( string  data) 
        

            
string KEY_64 = "VavicApp"
            
string IV_64 = "VavicApp"
            
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
            
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); 

            DESCryptoServiceProvider cryptoProvider 
= new DESCryptoServiceProvider(); 
            
int i = cryptoProvider.KeySize; 
            MemoryStream ms 
= new MemoryStream(); 
            CryptoStream cst 
= new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write); 

            StreamWriter sw 
= new StreamWriter(cst); 
            sw.Write(data); 
            sw.Flush(); 
            cst.FlushFinalBlock(); 
            sw.Flush(); 
            
return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length); 

        }
 
        

        
private   void  menuItem21_Click( object  sender, System.EventArgs e)
        
{
            
//对应加密函数DSACrypData(string  strcrypto)
            string strData=richTextBox1.Text;
            richTextBox2.Text
=DESDecodeData(strData);
            
        }
 
        
public   static   string  DESDecodeData( string  data) 
        

            
string KEY_64 = "VavicApp"
            
string IV_64 = "VavicApp"
            
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
            
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); 

            
byte[] byEnc; 
            
try 
            

                byEnc 
= Convert.FromBase64String(data); 
            }
 
            
catch 
            

                
return null
            }
 
            DESCryptoServiceProvider cryptoProvider 
= new DESCryptoServiceProvider(); 
            MemoryStream ms 
= new MemoryStream(byEnc); 
            CryptoStream cst 
= new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read); 
            StreamReader sr 
= new StreamReader(cst); 
            
return sr.ReadToEnd(); 
        }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疾风铸境

提供工作中碰到的和研究过的技术

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值