将文本作为字节数组保存到平面文件

时间:2015-10-07 10:50:09

标签: c# .net text

更新

这是为了隐藏我在客户端的公钥,使得窥探眼睛变得更加困难。是的,我知道公钥的意图是保持公开,但我正在尝试减轻密钥替换攻击,除了混淆,汇编合并,汇编签名和其他一些措施,这也是整体战略的一部分。因此,在我发送到客户端的代码中,我希望能够做到这样的事情

string publicKey = @"random characters" //don't want this in the code
byte[] keyBytes = [............] //this should be in the code

我不太确定如何获取公钥的文本,将其转换为字节数组,然后在客户端代码中将其转换回公钥。

我认为有一种简单的方法可以做到这一点,但我会绕圈试图解决这个问题。

基本上我有一系列文本数据,我希望能够将其作为字节保存到平面文件中。我可以把它读作字节数组,但是当我使用BinaryWriter将该字节数组写入文件时,我最终会得到原始文本。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

就像每个文件一样,文本文件二进制文件。

恰好在这种情况下,每个二进制数对应一个字符,因此当您在文本编辑器中打开文件时,您会看到可读文本。

强制性The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

答案 1 :(得分:2)

你可以为此创建一个小转换器。

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("};");

运行它。然后只需将输出的最后一行复制到源代码中。