谁有AES+BASE64加密、解密类!
解决方案 »
- “System.Data.DataSet”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“System.Data.Data
- 关于事件和委托的一小段代码,大家帮忙看看
- 急用!!!!加高分
- 终于知道C#为什么这么流行了
- 目录分割字符
- 在winform里的button,怎么实现我把鼠标放在上面的时候就自动弹出我要的文本,但不是在button的text上显示而是跟着鼠标显示,谢谢!
- datagrid删除一行出现的问题
- TCP通信中线程数不断增加的问题
- 刷新的问题!在主窗口打开另外一个窗口
- HRApp.HRCompanyClass不可访问,因为它受级别限制怎么解决?
- listbox的重新载入问题
- 分享 - C# 写的一个泛型类
命名空间为System.Security.Cryptography
里面的几个有用的类CryptoStream
DES
DESCryptoServiceProviderBase64编码使用Convert.GetBase64String(byte[] data)获得string数据
使用Convert.FromBase64String(string data)来获得byte[]数据
// desKey必须是8字节,desIV必须是8字节
string Encrypt (string Src, byte[] desKey, byte[] desIV)
{
byte[] data = Encoding.Defalut.GetBytes(Src);
Stream sout = new MemoryStream();
DES des = new DESCryptoServiceProvider();
CryptoStream encStream = new CryptoStream(sout, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write);
encStream.Write(data, 0, data.Length);
encStream.FlushFinalBlock();
StreamReader sreader = new StreamReader(sout);
string encString = Convert.ToBase64String(sreader.ReadToEnd());
return encString;
}解密
加密
// desKey必须是8字节,desIV必须是8字节
string Decrypt (string Src, byte[] desKey, byte[] desIV)
{
byte[] data = Convert.FromBase64String(Src);
Stream sout = new MemoryStream();
DES des = new DESCryptoServiceProvider();
CryptoStream encStream = new CryptoStream(sout, des.CreateDecryptor(desKey, desIV), CryptoStreamMode.Write);
encStream.Write(data, 0, data.Length);
encStream.FlushFinalBlock();
StreamReader sreader = new StreamReader(sout);
string decString = Encoding.Default.GetString(data);
return decString;
}
static byte[] desKey = new byte[8] { 0x14, 0x4D, 0x5C, 0x8A, 0x5C, 0xC3, 0x16, 0xB7 };
static byte[] desIV = new byte[8] { 0x53, 0x2D, 0x7F, 0x91, 0x8, 0x3E, 0x6C, 0x38 };string orgMessage = "This is a test";string encMessage = Encrypt (orgMessage, desKey, desIV);
string decMessage = Decrypt (encMessage, desKey, desIV);if (decMessage == orgMessage)
{
// 加密解密成功
}