.NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES
Posted on 2009-04-11 20:04 JieNet 阅读(1856) 评论(0) 编辑 收藏 举报namespace Encrypt_And_Decrypt_PrivateKey
{
public class AesSample
{
Rijndael aes = null;
public AesSample()
{
aes = Rijndael.Create();
}
public string Encrypt(string data,byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
aes.Key = bKey;
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
ICryptoTransform iCryptoTransform = aes.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
aes.Key = bKey;
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
ICryptoTransform iCryptoTransform = aes.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}//class AesSample
public class DesSample
{
DES des = null;
public DesSample()
{
des = new DESCryptoServiceProvider();
}
public string Encrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
des.Key = bKey;
ICryptoTransform iCryptoTransform = des.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
des.Key = bKey;
ICryptoTransform iCryptoTransform = des.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}//class DesSample
public class Rc2Sample
{
RC2 rc2 = null;
public Rc2Sample()
{
rc2 = new RC2CryptoServiceProvider();
}
public string Encrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
rc2.Key = bKey;
ICryptoTransform iCryptoTransform = rc2.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
rc2.Key = bKey;
ICryptoTransform iCryptoTransform = rc2.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}
public class RijndaelSample
{
Rijndael rijndael = null;
public RijndaelSample()
{
rijndael = new RijndaelManaged();
}
public string Encrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
rijndael.Key = bKey;
ICryptoTransform iCryptoTransform = rijndael.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
rijndael.Key = bKey;
ICryptoTransform iCryptoTransform = rijndael.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}
public class TripleDESSample
{
TripleDES tDes = null;
public TripleDESSample()
{
tDes = new TripleDESCryptoServiceProvider();
}
public string Encrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
tDes.Key = bKey;
ICryptoTransform iCryptoTransform = tDes.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
tDes.Key = bKey;
ICryptoTransform iCryptoTransform = tDes.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}
}//ns
{
public class AesSample
{
Rijndael aes = null;
public AesSample()
{
aes = Rijndael.Create();
}
public string Encrypt(string data,byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
aes.Key = bKey;
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
ICryptoTransform iCryptoTransform = aes.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
aes.Key = bKey;
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
ICryptoTransform iCryptoTransform = aes.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}//class AesSample
public class DesSample
{
DES des = null;
public DesSample()
{
des = new DESCryptoServiceProvider();
}
public string Encrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
des.Key = bKey;
ICryptoTransform iCryptoTransform = des.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
des.Key = bKey;
ICryptoTransform iCryptoTransform = des.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}//class DesSample
public class Rc2Sample
{
RC2 rc2 = null;
public Rc2Sample()
{
rc2 = new RC2CryptoServiceProvider();
}
public string Encrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
rc2.Key = bKey;
ICryptoTransform iCryptoTransform = rc2.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
rc2.Key = bKey;
ICryptoTransform iCryptoTransform = rc2.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}
public class RijndaelSample
{
Rijndael rijndael = null;
public RijndaelSample()
{
rijndael = new RijndaelManaged();
}
public string Encrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
rijndael.Key = bKey;
ICryptoTransform iCryptoTransform = rijndael.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
rijndael.Key = bKey;
ICryptoTransform iCryptoTransform = rijndael.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}
public class TripleDESSample
{
TripleDES tDes = null;
public TripleDESSample()
{
tDes = new TripleDESCryptoServiceProvider();
}
public string Encrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Encoding.UTF8.GetBytes(data);
tDes.Key = bKey;
ICryptoTransform iCryptoTransform = tDes.CreateEncryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Convert.ToBase64String(bResult);
}
catch
{
throw;
}
}
public string Decrypt(string data, byte[] bKey)
{
try
{
byte[] bData = Convert.FromBase64String(data);
tDes.Key = bKey;
ICryptoTransform iCryptoTransform = tDes.CreateDecryptor();
byte[] bResult =
iCryptoTransform.TransformFinalBlock(bData, 0, bData.Length);
return Encoding.UTF8.GetString(bResult);
}
catch
{
throw;
}
}
}
}//ns
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Encrypt_And_Decrypt_PrivateKey
{
class Program
{
static void Main(string[] args)
{
byte[] bKey8 = UTF8Encoding.UTF8.GetBytes("12345678");
byte[] bKey16 = UTF8Encoding.UTF8.GetBytes("1234567890123456");
byte[] bKey32 = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012");
string data = "Hello,I am Jie.";
Console.WriteLine("Aes Sample");
AesSample aes = new AesSample();
string aesData = "";
aesData = aes.Encrypt(data, bKey32);
Console.WriteLine("AES Encrypt:{0}", aesData);
Console.WriteLine("AES Decrypt:{0}", aes.Decrypt(aesData, bKey32));
Console.WriteLine();
Console.WriteLine("Des Sample");
DesSample des = new DesSample();
string desData = "";
desData = des.Encrypt(data, bKey8);
Console.WriteLine("DES Encrypt:{0}", desData);
Console.WriteLine("DES Decrypt:{0}", des.Decrypt(desData, bKey8));
Console.WriteLine();
Console.WriteLine("RC2 Sample");
Rc2Sample rc2 = new Rc2Sample();
string rc2Data = "";
rc2Data = rc2.Encrypt(data, bKey8);
Console.WriteLine("RC2 Encrypt:{0}", rc2Data);
Console.WriteLine("RC2 Decrypt:{0}", rc2.Decrypt(rc2Data, bKey8));
Console.WriteLine();
Console.WriteLine("Rijndael Sample");
RijndaelSample rijndael = new RijndaelSample();
string rijndaelData = "";
rijndaelData = rijndael.Encrypt(data, bKey32);
Console.WriteLine("Rijndael Encrypt:{0}", rijndaelData);
Console.WriteLine("Rijndael Decrypt:{0}", rijndael.Decrypt(rijndaelData, bKey32));
Console.WriteLine();
Console.WriteLine("TripleDES Sample");
TripleDESSample tripleDES = new TripleDESSample();
string tripleDESData = "";
tripleDESData = tripleDES.Encrypt(data, bKey16);
Console.WriteLine("TripleDES Encrypt:{0}", tripleDESData);
Console.WriteLine("TripleDES Decrypt:{0}", tripleDES.Decrypt(tripleDESData, bKey16));
Console.WriteLine();
Console.Read();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Encrypt_And_Decrypt_PrivateKey
{
class Program
{
static void Main(string[] args)
{
byte[] bKey8 = UTF8Encoding.UTF8.GetBytes("12345678");
byte[] bKey16 = UTF8Encoding.UTF8.GetBytes("1234567890123456");
byte[] bKey32 = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012");
string data = "Hello,I am Jie.";
Console.WriteLine("Aes Sample");
AesSample aes = new AesSample();
string aesData = "";
aesData = aes.Encrypt(data, bKey32);
Console.WriteLine("AES Encrypt:{0}", aesData);
Console.WriteLine("AES Decrypt:{0}", aes.Decrypt(aesData, bKey32));
Console.WriteLine();
Console.WriteLine("Des Sample");
DesSample des = new DesSample();
string desData = "";
desData = des.Encrypt(data, bKey8);
Console.WriteLine("DES Encrypt:{0}", desData);
Console.WriteLine("DES Decrypt:{0}", des.Decrypt(desData, bKey8));
Console.WriteLine();
Console.WriteLine("RC2 Sample");
Rc2Sample rc2 = new Rc2Sample();
string rc2Data = "";
rc2Data = rc2.Encrypt(data, bKey8);
Console.WriteLine("RC2 Encrypt:{0}", rc2Data);
Console.WriteLine("RC2 Decrypt:{0}", rc2.Decrypt(rc2Data, bKey8));
Console.WriteLine();
Console.WriteLine("Rijndael Sample");
RijndaelSample rijndael = new RijndaelSample();
string rijndaelData = "";
rijndaelData = rijndael.Encrypt(data, bKey32);
Console.WriteLine("Rijndael Encrypt:{0}", rijndaelData);
Console.WriteLine("Rijndael Decrypt:{0}", rijndael.Decrypt(rijndaelData, bKey32));
Console.WriteLine();
Console.WriteLine("TripleDES Sample");
TripleDESSample tripleDES = new TripleDESSample();
string tripleDESData = "";
tripleDESData = tripleDES.Encrypt(data, bKey16);
Console.WriteLine("TripleDES Encrypt:{0}", tripleDESData);
Console.WriteLine("TripleDES Decrypt:{0}", tripleDES.Decrypt(tripleDESData, bKey16));
Console.WriteLine();
Console.Read();
}
}
}