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.EventArgse)
... {
//对应加密函数DSACrypData(stringstrcrypto)
stringstrcrypto=richTextBox1.Text;
DSACrypData(strcrypto);
}


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

//下面是认证了
DSACryptoServiceProviderdsac2=newDSACryptoServiceProvider();
dsac2.FromXmlString(dsac.ToXmlString(
false));
boolver=dsac2.VerifyData(bytes,sign);
if(ver)
...{
MessageBox.Show(
"通过");
}

else
...{
MessageBox.Show(
"不能通过");
}

}


private void menuItem17_Click( object sender,System.EventArgse)
... {
//对应加密函数DSACrypData(stringstrcrypto)
stringstrData=richTextBox1.Text;
richTextBox2.Text
=DESEncodeData(strData);
}

public static string DESEncodeData( string data)
... {
stringKEY_64="VavicApp";
stringIV_64="VavicApp";
byte[]byKey=System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[]byIV=System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

DESCryptoServiceProvidercryptoProvider
=newDESCryptoServiceProvider();
inti=cryptoProvider.KeySize;
MemoryStreamms
=newMemoryStream();
CryptoStreamcst
=newCryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);

StreamWritersw
=newStreamWriter(cst);
sw.Write(data);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
returnConvert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);

}



private void menuItem21_Click( object sender,System.EventArgse)
... {
//对应加密函数DSACrypData(stringstrcrypto)
stringstrData=richTextBox1.Text;
richTextBox2.Text
=DESDecodeData(strData);

}

public static string DESDecodeData( string data)
... {
stringKEY_64="VavicApp";
stringIV_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
...{
returnnull;
}

DESCryptoServiceProvidercryptoProvider
=newDESCryptoServiceProvider();
MemoryStreamms
=newMemoryStream(byEnc);
CryptoStreamcst
=newCryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
StreamReadersr
=newStreamReader(cst);
returnsr.ReadToEnd();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值