Как мы используем шифрование Rijndael в библиотеке классов .Net Core? (Не библиотека классов .Net Framework) Нам нужно создать общую библиотеку .Net Core для использования в нескольких проектах и реализовать методы шифрования и дешифрования, которые используют одно и то же шифрование Rijndael для всех проектов.
В настоящее время мы используем:
- VS Enterprise 2015
- С#
- .Net Core Class Library
- Ссылка .NETStandard, Version = v1.6
Похоже, что реализация Rijndael и AES отсутствует в выпуске .Net Core 1.0... похоже, только включает базовые классы. Как мы можем получить .NET-версию Rijndael или AES-шифрования, добавленную в качестве ссылки на новый проект библиотеки .NET Core Class?
Вот метод шифрования, который работает в .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;
}