2016-04-26 2 views
0

Я пытаюсь сохранить ключ AES256 в виде обычного текста в файле. Когда я прямо напишу байты и откройте файл в блокноте, я вижу кучу мусора. Я пытался UTF кодировать байты, но, возможно, я делаю что-то неправильно.C# AES Ключевой файл

Вот код:

public static bool GenerateAes256KeyFile() 
{    
    SymmetricAlgorithm aesAlg = new AesCryptoServiceProvider(); 
    aesAlg.GenerateKey(); 

    //System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding(); 
    //string key = encoder.GetString(aesAlg.Key); 
    //File.WriteAllText(keyFile, aesAlg.Key); 
    File.WriteAllBytes(keyFile, aesAlg.Key); 
    return true; 
} 

Я попытался кодировка в комментариях, а также, и получить разных вид мусора текста.

Возможно, я просто пропустил что-то простое, так как я новичок в C#. Любая помощь очень ценится.

Thanks

+1

Ключ представляет собой серию случайных байтов, которые будут выглядеть как мусор, если они помещаются в файл как есть. Попытка декодировать кучу случайных байтов как UTF-8 также не имеет смысла и, скорее всего, приведет к ошибке. * Какой тип * обычного текста вы хотите преобразовать? –

+0

ключ ** IS ** случайный мусор. преобразование его в utf-8 будет случайным образом искажать ключ, потому что некоторые из этих случайных байтов могут отображаться на фактические символы utf8. вы не хотите utf, вы хотите что-то вроде base64 –

+0

Вы можете использовать 'Convert.ToBase64String' (для чтения:' Convert.FromBase64String') – Eser

ответ

0

Thanks Marc and Eser. Решение заключалось в использовании Convert.ToBase64String.