using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace TEAMModelOS.SDK.Helper.Security.DesCrypt
{
///
///3DES加密解密程序
/// --备用
///
public class DES3Crypt
{
//密钥
private static string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiFYTLQM3";
//矢量,矢量可以为空
private static string sIV = "qcDY6X+aPLw=";
//构造一个对称算法
private static SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();
public DES3Crypt() { }
///
/// 加密
///
/// 明文
/// 加密后的密文
public static string EncryptString(string Value)
{
try
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
mCSP.Key = Convert.FromBase64String(sKey);
mCSP.IV = Convert.FromBase64String(sIV);
//指定加密的运算模式
mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
//获取或设置加密算法的填充模式
mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);
byt = Encoding.UTF8.GetBytes(Value + "_0212YUAN");
ms = new MemoryStream();
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
cs.FlushFinalBlock();
cs.Close();
return Convert.ToBase64String(ms.ToArray());
}
catch (Exception ex)
{
var s = ex.Message;
return Value;
}
}
///
/// 解密
///
///
///
public static string DecryptString(string Value)
{
try
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
mCSP.Key = Convert.FromBase64String(sKey);
mCSP.IV = Convert.FromBase64String(sIV);
mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
byt = Convert.FromBase64String(Value);
ms = new MemoryStream();
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
cs.FlushFinalBlock();
cs.Close();
return Encoding.UTF8.GetString(ms.ToArray()).Remove(Encoding.UTF8.GetString(ms.ToArray()).Length - 9, 9);
}
catch (Exception ex)
{
var s = ex.Message;
return Value;
}
}
}
}