public static string DesEncrypt(string strMsg, string Key,string IV,Boolean Encode)
{
MemoryStream ms = new MemoryStream();
using (ms)
{
byte[] inputByteArray;
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
#region//加密配置
if (Encode)
{
inputByteArray = Encoding.UTF8.GetBytes(strMsg);
provider.Key = Encoding.UTF8.GetBytes(Key);
provider.IV = Encoding.ASCII.GetBytes(IV);
}
else
{
inputByteArray = Encoding.Default.GetBytes(strMsg);
provider.Mode = CipherMode.ECB;
provider.Padding = PaddingMode.PKCS7;
provider.Key = Encoding.Default.GetBytes(Key);
provider.IV = Encoding.Default.GetBytes(IV);
}
#endregion
CryptoStream stream2 = new CryptoStream(ms, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(inputByteArray, 0, inputByteArray.Length);
stream2.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
}
/// DES解密
/// <param name="strMsg">明文</param>
/// <param name="Key">密钥</param>
/// <param name="IV">向量</param>
/// <param name="Encode">加密方式:IBE使用True,非IBE使用False</param>
/// <returns></returns>
public static string DesDecode(string strMsg, string Key, string IV, Boolean Encode)
{
MemoryStream stream = new MemoryStream();
using (stream)
{
byte[] inputByteArray = Convert.FromBase64String(strMsg);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
#region//加密配置
if (Encode)
{
provider.Key = Encoding.UTF8.GetBytes(Key);
provider.IV = Encoding.ASCII.GetBytes(IV);
}
else
{
provider.Mode = CipherMode.ECB;
provider.Padding = PaddingMode.PKCS7;
provider.Key = Encoding.Default.GetBytes(Key);
provider.IV = Encoding.Default.GetBytes(IV);
}
#endregion
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(inputByteArray, 0, inputByteArray.Length);
stream2.FlushFinalBlock();
stream.Close();
return Encoding.UTF8.GetString(stream.ToArray());
}
}
/// <summary>
/// 中文加密
/// </summary>
/// <param name="strMsg"></param>
/// <param name="Key"></param>
/// <param name="IV"></param>
/// <param name="Encode"></param>
/// <returns></returns>
public static string Encrypt(string strMsg, string Key, string IV, Boolean Encode)
{
MemoryStream ms = new MemoryStream();
using (ms)
{
byte[] inputByteArray;
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
#region//加密配置
if (Encode)
{
inputByteArray = Encoding.UTF8.GetBytes(strMsg);
provider.Key = Encoding.UTF8.GetBytes(Key);
provider.IV = Encoding.ASCII.GetBytes(IV);
}
else
{
inputByteArray = Encoding.Default.GetBytes(strMsg);
//provider.Mode = CipherMode.ECB;
//provider.Padding = PaddingMode.PKCS7;
provider.Key = Encoding.Default.GetBytes(Key);
provider.IV = Encoding.Default.GetBytes(IV);
}
#endregion
CryptoStream stream2 = new CryptoStream(ms, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(inputByteArray, 0, inputByteArray.Length);
stream2.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
//byte[] btKey = Encoding.Default.GetBytes(Key);
//byte[] btIV = Encoding.Default.GetBytes(IV);
//DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//using (MemoryStream ms = new MemoryStream())
//{
// byte[] inData = Encoding.Default.GetBytes(strMsg);
// try
// {
// using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
// {
// cs.Write(inData, 0, inData.Length);
// cs.FlushFinalBlock();
// }
// return Convert.ToBase64String(ms.ToArray());
// }
// catch
// {
// throw;
// }
//}
}
/// <summary>
/// 中文解密
/// </summary>
/// <param name="strMsg"></param>
/// <param name="Key"></param>
/// <param name="IV"></param>
/// <param name="Encode"></param>
/// <returns></returns>
public static string Decrypt(string strMsg, string Key, string IV, Boolean Encode)
{
MemoryStream stream = new MemoryStream();
using (stream)
{
byte[] inputByteArray = Convert.FromBase64String(strMsg);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
#region//加密配置
if (Encode)
{
provider.Key = Encoding.UTF8.GetBytes(Key);
provider.IV = Encoding.ASCII.GetBytes(IV);
}
else
{
//provider.Mode = CipherMode.ECB;
//provider.Padding = PaddingMode.PKCS7;
provider.Key = Encoding.Default.GetBytes(Key);
provider.IV = Encoding.Default.GetBytes(IV);
}
#endregion
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(inputByteArray, 0, inputByteArray.Length);
stream2.FlushFinalBlock();
stream.Close();
//return Encoding.UTF8.GetString(stream.ToArray());
return Encoding.Default.GetString(stream.ToArray());
}
//byte[] btKey = Encoding.Default.GetBytes(Key);
//byte[] btIV = Encoding.Default.GetBytes(IV);
//DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//using (MemoryStream ms = new MemoryStream())
//{
// byte[] inData = Convert.FromBase64String(strMsg);
// try
// {
// using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write))
// {
// cs.Write(inData, 0, inData.Length);
// cs.FlushFinalBlock();
// }
// return Encoding.Default.GetString(ms.ToArray());
// }
// catch
// {
// throw;
// }
//}
}
{
MemoryStream ms = new MemoryStream();
using (ms)
{
byte[] inputByteArray;
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
#region//加密配置
if (Encode)
{
inputByteArray = Encoding.UTF8.GetBytes(strMsg);
provider.Key = Encoding.UTF8.GetBytes(Key);
provider.IV = Encoding.ASCII.GetBytes(IV);
}
else
{
inputByteArray = Encoding.Default.GetBytes(strMsg);
provider.Mode = CipherMode.ECB;
provider.Padding = PaddingMode.PKCS7;
provider.Key = Encoding.Default.GetBytes(Key);
provider.IV = Encoding.Default.GetBytes(IV);
}
#endregion
CryptoStream stream2 = new CryptoStream(ms, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(inputByteArray, 0, inputByteArray.Length);
stream2.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
}
/// DES解密
/// <param name="strMsg">明文</param>
/// <param name="Key">密钥</param>
/// <param name="IV">向量</param>
/// <param name="Encode">加密方式:IBE使用True,非IBE使用False</param>
/// <returns></returns>
public static string DesDecode(string strMsg, string Key, string IV, Boolean Encode)
{
MemoryStream stream = new MemoryStream();
using (stream)
{
byte[] inputByteArray = Convert.FromBase64String(strMsg);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
#region//加密配置
if (Encode)
{
provider.Key = Encoding.UTF8.GetBytes(Key);
provider.IV = Encoding.ASCII.GetBytes(IV);
}
else
{
provider.Mode = CipherMode.ECB;
provider.Padding = PaddingMode.PKCS7;
provider.Key = Encoding.Default.GetBytes(Key);
provider.IV = Encoding.Default.GetBytes(IV);
}
#endregion
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(inputByteArray, 0, inputByteArray.Length);
stream2.FlushFinalBlock();
stream.Close();
return Encoding.UTF8.GetString(stream.ToArray());
}
}
/// <summary>
/// 中文加密
/// </summary>
/// <param name="strMsg"></param>
/// <param name="Key"></param>
/// <param name="IV"></param>
/// <param name="Encode"></param>
/// <returns></returns>
public static string Encrypt(string strMsg, string Key, string IV, Boolean Encode)
{
MemoryStream ms = new MemoryStream();
using (ms)
{
byte[] inputByteArray;
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
#region//加密配置
if (Encode)
{
inputByteArray = Encoding.UTF8.GetBytes(strMsg);
provider.Key = Encoding.UTF8.GetBytes(Key);
provider.IV = Encoding.ASCII.GetBytes(IV);
}
else
{
inputByteArray = Encoding.Default.GetBytes(strMsg);
//provider.Mode = CipherMode.ECB;
//provider.Padding = PaddingMode.PKCS7;
provider.Key = Encoding.Default.GetBytes(Key);
provider.IV = Encoding.Default.GetBytes(IV);
}
#endregion
CryptoStream stream2 = new CryptoStream(ms, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(inputByteArray, 0, inputByteArray.Length);
stream2.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
//byte[] btKey = Encoding.Default.GetBytes(Key);
//byte[] btIV = Encoding.Default.GetBytes(IV);
//DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//using (MemoryStream ms = new MemoryStream())
//{
// byte[] inData = Encoding.Default.GetBytes(strMsg);
// try
// {
// using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
// {
// cs.Write(inData, 0, inData.Length);
// cs.FlushFinalBlock();
// }
// return Convert.ToBase64String(ms.ToArray());
// }
// catch
// {
// throw;
// }
//}
}
/// <summary>
/// 中文解密
/// </summary>
/// <param name="strMsg"></param>
/// <param name="Key"></param>
/// <param name="IV"></param>
/// <param name="Encode"></param>
/// <returns></returns>
public static string Decrypt(string strMsg, string Key, string IV, Boolean Encode)
{
MemoryStream stream = new MemoryStream();
using (stream)
{
byte[] inputByteArray = Convert.FromBase64String(strMsg);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
#region//加密配置
if (Encode)
{
provider.Key = Encoding.UTF8.GetBytes(Key);
provider.IV = Encoding.ASCII.GetBytes(IV);
}
else
{
//provider.Mode = CipherMode.ECB;
//provider.Padding = PaddingMode.PKCS7;
provider.Key = Encoding.Default.GetBytes(Key);
provider.IV = Encoding.Default.GetBytes(IV);
}
#endregion
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(inputByteArray, 0, inputByteArray.Length);
stream2.FlushFinalBlock();
stream.Close();
//return Encoding.UTF8.GetString(stream.ToArray());
return Encoding.Default.GetString(stream.ToArray());
}
//byte[] btKey = Encoding.Default.GetBytes(Key);
//byte[] btIV = Encoding.Default.GetBytes(IV);
//DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//using (MemoryStream ms = new MemoryStream())
//{
// byte[] inData = Convert.FromBase64String(strMsg);
// try
// {
// using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write))
// {
// cs.Write(inData, 0, inData.Length);
// cs.FlushFinalBlock();
// }
// return Encoding.Default.GetString(ms.ToArray());
// }
// catch
// {
// throw;
// }
//}
}