/// <summary>
/// ECB加密
/// </summary>
/// <param name="paymentCode">加密字符串</param>
/// <param name="key">秘钥</param>
/// <param name="iv">ECB模式不需要IV</param>
/// <returns></returns>
public static string DESEncrypt(string paymentCode, string key, string iv = "12345678")
{
SymmetricAlgorithm symmetric;
ICryptoTransform iCrypto;
MemoryStream memory;
CryptoStream crypto;
byte[] byt;
using (symmetric = new TripleDESCryptoServiceProvider())
{
symmetric.Key = Encoding.UTF8.GetBytes(key);
//symmetric.IV = Encoding.UTF8.GetBytes(iv);
symmetric.Mode = CipherMode.ECB;
symmetric.Padding = PaddingMode.PKCS7;
iCrypto = symmetric.CreateEncryptor();
byt = Encoding.UTF8.GetBytes(paymentCode);
memory = new MemoryStream();
using (crypto = new CryptoStream(memory, iCrypto, CryptoStreamMode.Write))
{
crypto.Write(byt, 0, byt.Length);
crypto.FlushFinalBlock();
crypto.Close();
//return Convert.ToBase64String(memory.ToArray());
//return Encoding.UTF8.GetString(memory.ToArray());
return Convert.ToBase64String(memory.ToArray());
}
}
}
/// <summary>
/// ECB解密
/// </summary>
/// <param name="data">解密字符串</param>
/// <param name="key">秘钥</param>
/// <param name="iv">ECB模式不需要IV</param>
/// <returns></returns>
public static string DESDecrypst(string data, string key, string iv)
{
using (SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider())
{
mCSP.Key = Encoding.UTF8.GetBytes(key);
//mCSP.IV = Encoding.UTF8.GetBytes(iv);
mCSP.Mode = CipherMode.ECB;
mCSP.Padding = PaddingMode.Zeros;
ICryptoTransform iCrypto;
MemoryStream memory;
CryptoStream crypto;
byte[] byt;
iCrypto = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
byt = Convert.FromBase64String(data);
memory = new MemoryStream();
using (crypto = new CryptoStream(memory, iCrypto, CryptoStreamMode.Write))
{
crypto.Write(byt, 0, byt.Length);
crypto.FlushFinalBlock();
crypto.Close();
}
return Encoding.UTF8.GetString(memory.ToArray());
}
}
C# 3Des ECB加密方式
最新推荐文章于 2023-08-25 09:45:23 发布