我们如何在 .Net Core 类库中使用 Rijndael 加密?(不是 .Net Framework 类库)我们需要创建一个共享的 .Net Core 库,用于多个项目,并需要实现加密和解密方法以在这些项目中使用相同的 Rijndael 加密。
我们目前使用:
- VS Enterprise 2015 - C# - .Net Core 类库 - .NETStandard,版本=v1.6 引用
看起来 .Net Core 1.0 版本缺少 Rijndael 和 AES 的实现...它似乎只包括基础类。如何将 .Net Core 实现的 Rijndael 或 AES 加密添加为新的 .Net Core 类库项目的引用?
下面是在 .Net Framework 4.5.2 中工作的加密方法:
我们目前使用:
- VS Enterprise 2015 - C# - .Net Core 类库 - .NETStandard,版本=v1.6 引用
看起来 .Net Core 1.0 版本缺少 Rijndael 和 AES 的实现...它似乎只包括基础类。如何将 .Net Core 实现的 Rijndael 或 AES 加密添加为新的 .Net Core 类库项目的引用?
下面是在 .Net Framework 4.5.2 中工作的加密方法:
public static string Encrypt(string valueToEncrypt, string symmetricKey, string initializationVector)
{
string returnValue = valueToEncrypt;
var aes = new System.Security.Cryptography.RijndaelManaged();
try
{
aes.Key = ASCIIEncoding.ASCII.GetBytes(symmetricKey);
aes.IV = ASCIIEncoding.ASCII.GetBytes(initializationVector);
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.ISO10126;
var desEncrypter = aes.CreateEncryptor();
var buffer = ASCIIEncoding.ASCII.GetBytes(valueToEncrypt);
returnValue = Convert.ToBase64String(desEncrypter.TransformFinalBlock(buffer, 0, buffer.Length));
}
catch (Exception)
{
returnValue = string.Empty;
}
return returnValue;
}