.net core出来后,在一些功能上有了很大的差别,以此随笔记录所用的到的一些方法的差别所在
引用:System.Security.Cryptography;
/// <summary>
/// AES加密
/// </summary>
/// <param name="toEncrypt">要加密的明文</param>
/// <param name="key">密钥</param>
/// <param name="iv">向量</param>
/// <returns></returns>
public static string Encrypt(string toEncrypt, string key)
{
try
{
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
byte[] ivArray = UTF8Encoding.UTF8.GetBytes(key);
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
var rDel = Aes.Create();//
Core
RijndaelManaged rDel = new RijndaelManaged(); // framework
RijndaelManaged rDel = new RijndaelManaged(); // framework
rDel.Key = keyArray;
rDel.IV = ivArray;//向量
rDel.Mode = CipherMode.CBC;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
catch (Exception ex)
{
return "";
}
}
}
/// <summary>
/// AES解密
/// </summary>
/// <param name="toDecrypt">要解密的密文</param>
/// <param name="key">密钥</param>
/// <param name="iv">向量</param>
/// <returns></returns>
public static string Decrypt(string toDecrypt, string key)
{
try
{
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
byte[] ivArray = UTF8Encoding.UTF8.GetBytes(key);
byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
var rDel = Aes.Create();//
Core
RijndaelManaged rDel = new RijndaelManaged(); //
framework
rDel.Key = keyArray;
rDel.IV = ivArray;//向量
rDel.Mode = CipherMode.CBC;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return UTF8Encoding.UTF8.GetString(resultArray);
}
catch (Exception ex)
{
return "";
}