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