更新
这是为了隐藏我在客户端的公钥,使得窥探眼睛变得更加困难。是的,我知道公钥的意图是保持公开,但我正在尝试减轻密钥替换攻击,除了混淆,汇编合并,汇编签名和其他一些措施,这也是整体战略的一部分。因此,在我发送到客户端的代码中,我希望能够做到这样的事情
string publicKey = @"random characters" //don't want this in the code
byte[] keyBytes = [............] //this should be in the code
我不太确定如何获取公钥的文本,将其转换为字节数组,然后在客户端代码中将其转换回公钥。
我认为有一种简单的方法可以做到这一点,但我会绕圈试图解决这个问题。
基本上我有一系列文本数据,我希望能够将其作为字节保存到平面文件中。我可以把它读作字节数组,但是当我使用BinaryWriter将该字节数组写入文件时,我最终会得到原始文本。
有人可以帮忙吗?
答案 0 :(得分:4)
就像每个文件一样,文本文件是二进制文件。
恰好在这种情况下,每个二进制数对应一个字符,因此当您在文本编辑器中打开文件时,您会看到可读文本。
答案 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("};");
运行它。然后只需将输出的最后一行复制到源代码中。