c# DeS 加密解密字符串
2010-01-11 16:09
232 查看
public static class DESSecurity
{
#region DES加密字符串
/// <summary>
/// DES加密方法
/// </summary>
/// <param name="plain">明文</param>
/// <param name="key">密钥</param>
/// <param name="iv">向量</param>
/// <param name="isBase64">生成的密码是否用base64编码</param>
/// <returns>密文</returns>
public static String EncryptDES(string plain, byte[] rgbKey, byte[] rgbIV)
{
if (rgbKey.Length != 8) throw new ArgumentException("长度必须为8。", "rgbKey");
if (rgbIV.Length != 8) throw new ArgumentException("长度必须为8。", "rgbIV");
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
using (StreamWriter sw = new StreamWriter(cs))
{
sw.Write(plain);
sw.Flush();
cs.FlushFinalBlock();
ms.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}
}
#endregion
#region DES解密字符串
/// <summary>
/// DES解密方法
/// </summary>
/// <param name="cipher">密文</param>
/// <param name="key">密钥</param>
/// <param name="iv">向量</param>
/// <param name="isBase64">密文是否用base64解码</param>
/// <returns>明文</returns>
public static String DecryptDES(string cipher, byte[] key64, byte[] iv64)
{
byte[] bytesCipher;
bytesCipher = Convert.FromBase64String(cipher);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(bytesCipher);
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key64, iv64), CryptoStreamMode.Read);
using (StreamReader sr = new StreamReader(cs))
{
return sr.ReadToEnd();
}
}
#endregion
}
{
#region DES加密字符串
/// <summary>
/// DES加密方法
/// </summary>
/// <param name="plain">明文</param>
/// <param name="key">密钥</param>
/// <param name="iv">向量</param>
/// <param name="isBase64">生成的密码是否用base64编码</param>
/// <returns>密文</returns>
public static String EncryptDES(string plain, byte[] rgbKey, byte[] rgbIV)
{
if (rgbKey.Length != 8) throw new ArgumentException("长度必须为8。", "rgbKey");
if (rgbIV.Length != 8) throw new ArgumentException("长度必须为8。", "rgbIV");
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
using (StreamWriter sw = new StreamWriter(cs))
{
sw.Write(plain);
sw.Flush();
cs.FlushFinalBlock();
ms.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}
}
#endregion
#region DES解密字符串
/// <summary>
/// DES解密方法
/// </summary>
/// <param name="cipher">密文</param>
/// <param name="key">密钥</param>
/// <param name="iv">向量</param>
/// <param name="isBase64">密文是否用base64解码</param>
/// <returns>明文</returns>
public static String DecryptDES(string cipher, byte[] key64, byte[] iv64)
{
byte[] bytesCipher;
bytesCipher = Convert.FromBase64String(cipher);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(bytesCipher);
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key64, iv64), CryptoStreamMode.Read);
using (StreamReader sr = new StreamReader(cs))
{
return sr.ReadToEnd();
}
}
#endregion
}
相关文章推荐
- .Net(c#)加密解密之Aes和Des
- C#对字符串加密解密 DES
- C与C#通讯加密之C语言DES的cbc pkcs7的实现(二)
- [转]C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- DES的两个简单的加密、解密函数(C#中使用)
- C# DES 加密解密
- Asp.net,C# 加密解密字符串
- C#中使用DES和AES加密解密
- 【转】asp.net(c#)加密解密算法之sha1、md5、des、aes实现源码详解
- Asp.net,C# 加密解密字符串的使用详解
- Asp.net,C# 加密解密字符串的使用详解
- 使用C#加密及解密字符串
- 对称加密的例子(DES)——直接加密和解密字符串
- c# 加密 解密字符串 方法
- C#中使用DES和AES加密解密
- c# 调用PB中的b64_size加密解密 DES
- Asp.net,C# 纯数字加密解密字符串
- Asp.net,C# 纯数字加密解密字符串
- C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- 用 Java 解密 C# 加密的数据(DES)