将文本作为字节数组保存到平面文件
Persisting text as byte array to flat file
更新
这是为了在客户端隐藏我的 public 密钥,让窥探者更难找到它。是的,我知道 public 密钥的目的是保留 public 但我正在尝试减轻密钥替换攻击,除了混淆、程序集合并、程序集签名和其他一些措施之外,这是总体战略。所以在我发送到客户端的代码中,我希望能够做这样的事情
string publicKey = @"random characters" //don't want this in the code
byte[] keyBytes = [............] //this should be in the code
我不太确定如何获取 public 键的文本,将其转换为字节数组,然后在客户端代码中使用它来转换回 public 键。
我认为有一种简单的方法可以做到这一点,但我正在兜圈子试图找出答案。
基本上我有一系列文本数据,我希望能够将其作为字节保存到平面文件中。我可以将它作为字节数组读取,但是当我使用 BinaryWriter 将该字节数组写入文件时,我最终得到的是原始文本。
有人可以帮忙吗?
就像每个文件一样,文本文件是二进制文件。
恰好在这种情况下,每个二进制数都对应一个字符,因此当您在文本编辑器中打开文件时,您会看到可读的文本。
您可以为此创建一个小转换器。
string publicKey = "AsdfsSDhysffsdfsdfZ09";
Console.Write("byte[] keyBytes = { ");
Console.Write(String.Join(", ", Array.ConvertAll(Encoding.ASCII.GetBytes(publicKey), b => String.Format("0x{0:X2}", b))));
Console.WriteLine("};");
运行吧。然后将输出的最后一行复制到您的源代码中。
更新
这是为了在客户端隐藏我的 public 密钥,让窥探者更难找到它。是的,我知道 public 密钥的目的是保留 public 但我正在尝试减轻密钥替换攻击,除了混淆、程序集合并、程序集签名和其他一些措施之外,这是总体战略。所以在我发送到客户端的代码中,我希望能够做这样的事情
string publicKey = @"random characters" //don't want this in the code
byte[] keyBytes = [............] //this should be in the code
我不太确定如何获取 public 键的文本,将其转换为字节数组,然后在客户端代码中使用它来转换回 public 键。
我认为有一种简单的方法可以做到这一点,但我正在兜圈子试图找出答案。
基本上我有一系列文本数据,我希望能够将其作为字节保存到平面文件中。我可以将它作为字节数组读取,但是当我使用 BinaryWriter 将该字节数组写入文件时,我最终得到的是原始文本。
有人可以帮忙吗?
就像每个文件一样,文本文件是二进制文件。
恰好在这种情况下,每个二进制数都对应一个字符,因此当您在文本编辑器中打开文件时,您会看到可读的文本。
您可以为此创建一个小转换器。
string publicKey = "AsdfsSDhysffsdfsdfZ09";
Console.Write("byte[] keyBytes = { ");
Console.Write(String.Join(", ", Array.ConvertAll(Encoding.ASCII.GetBytes(publicKey), b => String.Format("0x{0:X2}", b))));
Console.WriteLine("};");
运行吧。然后将输出的最后一行复制到您的源代码中。