public class TDESHelper
{
private static TDESHelper _instance = null;
private static readonly object _lock = new();
public static TDESHelper GetInstance()
{
if (_instance == null)
{
lock (_lock)
{
if (_instance == null)
{
_instance = new();
}
}
}
return _instance;
}
private static TripleDESCryptoServiceProvider tripleDESCryptoServiceProvider = null;
public TDESHelper()
{
tripleDESCryptoServiceProvider = new()
{
Padding = PaddingMode.None,
Mode = CipherMode.ECB
};
}
/// <summary>
/// 3DES加密
/// </summary>
/// <param name="plainText">正文</param>
/// <param name="rawKeyData">密钥</param>
/// <returns>密文</returns>
public byte[] DoTripleEncrypt(byte[] plainText, byte[] rawKeyData)
{
var encryptor = tripleDESCryptoServiceProvider.CreateEncryptor(rawKeyData, null);
return encryptor.TransformFinalBlock(needData, 0, needData.Length);
}
/// <summary>
/// 3DES解密
/// </summary>
/// <param name="cipherText">密文</param>
/// <param name="rawKeyData">密钥</param>
/// <returns>明文</returns>
public byte[] DoTripleDecrypt(byte[] cipherText, byte[] rawKeyData)
{
var decryptor = tripleDESCryptoServiceProvider.CreateDecryptor(rawKeyData, null);
return decryptor.TransformFinalBlock(needData, 0, needData.Length);
}
C# 3DES加解密实现ECB,NoPadding
最新推荐文章于 2023-03-08 09:01:57 发布