C#中使用DES和AES加密解密
2014-09-09 10:04
579 查看
using System;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace MyCryptography
{
///
/// DES加密解密
///
public class DES
{
///
/// 获取密钥
///
private static string Key
{
get { return @"P@+#wG+Z"; }
}
///
/// 获取向量
///
private static string IV
{
get { return @"L%n67}G/Mk@k%:~Y"; }
}
///
/// DES加密
///
/// 明文字符串
/// 密文
public static string DESEncrypt(string plainStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
string encrypt = null;
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
encrypt = Convert.ToBase64String(mStream.ToArray());
}
}
}
catch { }
des.Clear();
return encrypt;
}
///
/// DES解密
///
/// 密文字符串
/// 明文
public static string DESDecrypt(string encryptStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Convert.FromBase64String(encryptStr);
string decrypt = null;
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
decrypt = Encoding.UTF8.GetString(mStream.ToArray());
}
}
}
catch { }
des.Clear();
return decrypt;
}
}
///
/// AES加密解密
///
public class AES
{
///
/// 获取密钥
///
private static string Key
{
get { return @")O[NB]6,YF}+efcaj{+oESb9d8>Z'e9M"; }
}
///
/// 获取向量
///
private static string IV
{
get { return @"L+/~f4,Ir)b$=pkf"; }
}
///
/// AES加密
///
/// 明文字符串
/// 密文
public static string AESEncrypt(string plainStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
string encrypt = null;
Rijndael aes = Rijndael.Create();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
encrypt = Convert.ToBase64String(mStream.ToArray());
}
}
}
catch { }
aes.Clear();
return encrypt;
}
///
/// AES加密
///
/// 明文字符串
/// 加密失败时是否返回 null,false 返回 String.Empty
/// 密文
public static string AESEncrypt(string plainStr, bool returnNull)
{
string encrypt = AESEncrypt(plainStr);
return returnNull ? encrypt : (encrypt == null ? String.Empty : encrypt);
}
///
/// AES解密
///
/// 密文字符串
/// 明文
public static string AESDecrypt(string encryptStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Convert.FromBase64String(encryptStr);
string decrypt = null;
Rijndael aes = Rijndael.Create();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
decrypt = Encoding.UTF8.GetString(mStream.ToArray());
}
}
}
catch { }
aes.Clear();
return decrypt;
}
///
/// AES解密
///
/// 密文字符串
/// 解密失败时是否返回 null,false 返回 String.Empty
/// 明文
public static string AESDecrypt(string encryptStr, bool returnNull)
{
string decrypt = AESDecrypt(encryptStr);
return returnNull ? decrypt : (decrypt == null ? String.Empty : decrypt);
}
}
}
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace MyCryptography
{
///
/// DES加密解密
///
public class DES
{
///
/// 获取密钥
///
private static string Key
{
get { return @"P@+#wG+Z"; }
}
///
/// 获取向量
///
private static string IV
{
get { return @"L%n67}G/Mk@k%:~Y"; }
}
///
/// DES加密
///
/// 明文字符串
/// 密文
public static string DESEncrypt(string plainStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
string encrypt = null;
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
encrypt = Convert.ToBase64String(mStream.ToArray());
}
}
}
catch { }
des.Clear();
return encrypt;
}
///
/// DES解密
///
/// 密文字符串
/// 明文
public static string DESDecrypt(string encryptStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Convert.FromBase64String(encryptStr);
string decrypt = null;
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
decrypt = Encoding.UTF8.GetString(mStream.ToArray());
}
}
}
catch { }
des.Clear();
return decrypt;
}
}
///
/// AES加密解密
///
public class AES
{
///
/// 获取密钥
///
private static string Key
{
get { return @")O[NB]6,YF}+efcaj{+oESb9d8>Z'e9M"; }
}
///
/// 获取向量
///
private static string IV
{
get { return @"L+/~f4,Ir)b$=pkf"; }
}
///
/// AES加密
///
/// 明文字符串
/// 密文
public static string AESEncrypt(string plainStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
string encrypt = null;
Rijndael aes = Rijndael.Create();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
encrypt = Convert.ToBase64String(mStream.ToArray());
}
}
}
catch { }
aes.Clear();
return encrypt;
}
///
/// AES加密
///
/// 明文字符串
/// 加密失败时是否返回 null,false 返回 String.Empty
/// 密文
public static string AESEncrypt(string plainStr, bool returnNull)
{
string encrypt = AESEncrypt(plainStr);
return returnNull ? encrypt : (encrypt == null ? String.Empty : encrypt);
}
///
/// AES解密
///
/// 密文字符串
/// 明文
public static string AESDecrypt(string encryptStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Convert.FromBase64String(encryptStr);
string decrypt = null;
Rijndael aes = Rijndael.Create();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
decrypt = Encoding.UTF8.GetString(mStream.ToArray());
}
}
}
catch { }
aes.Clear();
return decrypt;
}
///
/// AES解密
///
/// 密文字符串
/// 解密失败时是否返回 null,false 返回 String.Empty
/// 明文
public static string AESDecrypt(string encryptStr, bool returnNull)
{
string decrypt = AESDecrypt(encryptStr);
return returnNull ? decrypt : (decrypt == null ? String.Empty : decrypt);
}
}
}
相关文章推荐
- C#中使用DES和AES加密解密
- C#中使用DES和AES加密解密
- C#中使用DES和AES加密解密
- C#使用DES和AES实现加密解密功能示例
- C#中使用DES和AES加密解密
- C#中使用DES和AES加密解密
- C#中使用DES和AES加密解密
- Asp.Net C#中除了MD5加密之外还经常用到了AES加密、解密与DES加密、解密,本次先介绍DES的加密及解密。注意的是DES的密匙是8位的。
- Android 中对称加密算法DES,DESede,AES的加密和解密 的工具类的使用
- 常用加密解密算法【RSA、AES、DES、MD5】介绍和使用
- 加密解密算法【RSA、AES、DES、MD5】介绍和使用
- [转]C# 使用 256 位 AES 加密和解密文件
- C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)
- DES的两个简单的加密、解密函数(C#中使用)
- 常用加密解密算法【RSA、AES、DES、MD5】介绍和使用
- .Net(c#)加密解密之Aes和Des
- 常用加密解密算法【RSA、AES、DES、MD5】介绍和使用
- 【转】asp.net(c#)加密解密算法之sha1、md5、des、aes实现源码详解
- 使用C#实现AES加密解密
- 使用C#实现AES加密解密