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#的新手。任何援助非常感謝。
謝謝
一個鍵是一系列隨機字節,如果放在文件中就會看起來像垃圾一樣。試圖將一串隨機字節解碼爲UTF-8也沒有意義,並可能導致錯誤。 *你想要將它轉換成什麼樣的純文本? –
關鍵**是**隨機垃圾。將其轉換爲utf-8會隨機破壞密鑰,因爲其中一些隨機字節可以映射到實際的utf8字符。你不想要utf,你想要的東西像base64 –
你可以使用'Convert.ToBase64String'(讀取:'Convert.FromBase64String') – Eser