//3DES的cbc加密[24位密钥对应192位加密]
public static string TripleDesEncryptorCBC(string text, string key, stringiv)
{var tripleDESCipher = newTripleDESCryptoServiceProvider();
tripleDESCipher.Mode=CipherMode.CBC;
tripleDESCipher.Padding=PaddingMode.PKCS7;byte[] pwdBytes =System.Text.Encoding.UTF8.GetBytes(key);byte[] keyBytes = new byte[24];int len =pwdBytes.Length;if (len >keyBytes.Length)
len=keyBytes.Length;
System.Array.Copy(pwdBytes, keyBytes, len);
tripleDESCipher.Key=keyBytes;
tripleDESCipher.IV=Encoding.ASCII.GetBytes(iv);
ICryptoTransform transform=tripleDESCipher.CreateEncryptor();byte[] plainText =Encoding.UTF8.GetBytes(text);byte[] cipherBytes = transform.TransformFinalBlock(plainText, 0, plainText.Length);returnConvert.ToBase64String(cipherBytes);
}//3DES的cbc解密
public static string TripleDesDecryptorCBC(string text, string key, stringiv)
{var tripleDESCipher = newTripleDESCryptoServiceProvider();
tripleDESCipher.Mode=CipherMode.CBC;
tripleDESCipher.Padding=PaddingMode.PKCS7;byte[] encryptedData =Convert.FromBase64String(text);byte[] pwdBytes =System.Text.Encoding.UTF8.GetBytes(key);byte[] keyBytes = new byte[24];byte[] ivBytes =Encoding.ASCII.GetBytes(iv);int len =pwdBytes.Length;if (len >keyBytes.Length)
len=keyBytes.Length;
System.Array.Copy(pwdBytes, keyBytes, len);
tripleDESCipher.Key=keyBytes;
tripleDESCipher.IV=ivBytes;
ICryptoTransform transform=tripleDESCipher.CreateDecryptor();byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);returnEncoding.UTF8.GetString(plainText);
}//加密
public string DESEncrypt(string paymentCode, string key, stringiv)
{
SymmetricAlgorithm symmetric;
ICryptoTransform iCrypto;
MemoryStream memory;
CryptoStream crypto;byte[] byt;
symmetric= newTripleDESCryptoServiceProvider();
symmetric.Key=Encoding.UTF8.GetBytes(key);
symmetric.IV=Encoding.UTF8.GetBytes(iv);
iCrypto=symmetric.CreateEncryptor();
byt=Encoding.UTF8.GetBytes(paymentCode);
memory= newMemoryStream();
crypto= newCryptoStream(memory, iCrypto, CryptoStreamMode.Write);
crypto.Write(byt,0, byt.Length);
crypto.FlushFinalBlock();
crypto.Close();returnConvert.ToBase64String(memory.ToArray());
}//解密
public static string DESDecrypst(string data, string key, stringiv)
{
SymmetricAlgorithm mCSP= newTripleDESCryptoServiceProvider();
mCSP.Key=Encoding.UTF8.GetBytes(key);
mCSP.IV=Encoding.UTF8.GetBytes(iv);
ICryptoTransform iCrypto;
MemoryStream memory;
CryptoStream crypto;byte[] byt;
iCrypto=mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
byt=Convert.FromBase64String(data);
memory= newMemoryStream();
crypto= newCryptoStream(memory, iCrypto, CryptoStreamMode.Write);
crypto.Write(byt,0, byt.Length);
crypto.FlushFinalBlock();
crypto.Close();returnEncoding.UTF8.GetString(memory.ToArray());
}