数据加密之SymmetricAlgorithm加密

时间:2023-03-09 04:26:19
数据加密之SymmetricAlgorithm加密
  #region SymmetricAlgorithm加密
/// <summary>
/// 按指定对称算法、键和向量加密字符串
/// </summary>
public static byte[] Encrypt(string plainText, string algName, byte[] rgbKey, byte[] rgbIv)
{
var alg = SymmetricAlgorithm.Create(algName);
var transform = alg.CreateEncryptor(rgbKey, rgbIv);
var ms = new MemoryStream();
var encStream = new CryptoStream(ms, transform, CryptoStreamMode.Write);
var sw = new StreamWriter(encStream);
sw.WriteLine(plainText);
sw.Close();
encStream.Close();
var buffer = ms.ToArray();
ms.Close();
return buffer;
}
#endregion
#region SymmetricAlgorithm解密
/// <summary>
/// 按指定对称算法、键和向量解密数据
/// </summary>
public static string Decrypt(byte[] cypherText, string algName, byte[] rgbKey, byte[] rgbIv)
{
var alg = SymmetricAlgorithm.Create(algName);
var transform = alg.CreateDecryptor(rgbKey, rgbIv);
var ms = new MemoryStream(cypherText);
var encStream = new CryptoStream(ms, transform, CryptoStreamMode.Read);
var sr = new StreamReader(encStream);
var val = sr.ReadLine();
sr.Close();
encStream.Close();
ms.Close();
return val;
}
#endregion