Я пытаюсь создать 256-битный ключ и использовать его в AES-шифровании, и мне нужно сохранить его в моем файле web.config, чтобы он был преобразован в строка.Попытка создать 256-битный ключ для хранения в web.config
Склеп библиотека, я использую это: https://gist.githubusercontent.com/jbtule/4336842/raw/8da408b55fe9f94adb3319ed6491897d0ebac790/AESThenHMAC.cs
Так, например, метод подписи выглядит следующим образом:
public static string SimpleEncrypt(string secretMessage, byte[] cryptKey, byte[] authKey,
byte[] nonSecretPayload = null)
Я попытался следующие, но она возвращается забавные символы:
var hmac = new HMACSHA256();
var keyHex = System.Text.Encoding.UTF8.GetString(hmac.Key);
Мне нужно будет создать подобный секретный ключ, который будет тем же самым процессом, так как он также имеет 256 бит, и мне нужно сохранить его в файле web.conf.
Надеясь кто-то может помочь мне
Право. Клавиши HMAC - это симметричные клавиши. Обычно они состоят из случайных байтов.Случайные байты, как правило, не представляют собой корректный текст в кодировке UTF-8, поэтому вы не можете * декодировать * их на строки таким образом. Вы должны * закодировать * их, используя базу 64, как предлагает Павел. –
@PawelVeselov: Сделайте этот ответ и включите пример, который вызывает 'Convert.ToBase64String'. Я бы поднял его. –
@MaartenBodewes Confused, почему HMACSHA256 создает ключ размером 64. Как создать размер 32? –