Я использую пространство имен System.Web.Security для шифрования и дешифрования ключа компьютера. Как я понимаю, этот метод использовал машинный ключ, присутствующий в файлах конфигурации, для шифрования и дешифрования
<machineKey validationKey="somerandomcharsinthemachinekey" decryptionKey="somedecryptionkey" validation="SHA1" />
Моими вспомогательными методами, которые вызывают шифрование и дешифрование, являются
public static string Encrypt(string plaintextValue)
{
var plaintextBytes = Encoding.UTF8.GetBytes(plaintextValue);
return Convert.ToBase64String(MachineKey.Protect(plaintextBytes, null));
}
public static string Decrypt(string encryptedValue)
{
var encryptedValueBytes = Convert.FromBase64String(encryptedValue);
var decryptedBytes = MachineKey.Unprotect(encryptedValueBytes, null);
return Encoding.UTF8.GetString(decryptedBytes);
}
Этот код, однако, не работает в приложениях Azure, в которых нет файлов конфигурации, таких как приложения функций и т. Д., И выдает исключение. Как я могу использовать этот код в таких сценариях, ИЛИ есть ли собственный код, который я могу написать, который делает то же самое, что и MachineKey Encryption?