分离二进制加密数据

时间:2010-05-01 19:02:51

标签: encryption aes

二进制加密字符串是否可以包含“空格”或“回车”?在两个加密的byte []数组之间放置分隔符的最佳方法是什么?

3 个答案:

答案 0 :(得分:4)

一般来说,二进制数据中没有这样的概念。您可以将特定字节(或字节序列)定义为分隔符,但是如果数据自然发生,您必须制定转义规则。

通常最好包含长度前缀 - 因此,如果您有多个值,则可能有:

length-1 data-1 length-2 data-2 terminator

(其中terminator的长度为-1或某些同等无效的值)。

除此之外,这使得 更容易读取数据而不是扫描分隔符。您可以读取只是下一个块(或值,或其他)的数据而不会意外地读入下一个值...因此您可以将流传递给需要读取下一个块的任何内容长度/值对。

答案 1 :(得分:1)

你不需要任何方法来分隔字符串。因为你知道每个字符串必须是256位,所以只需取出字符串并将其分成256位的块

答案 2 :(得分:0)

可能你问题是你想在某处使用加密数据并希望将加密数据保存为字符串,因为原始数据也是字符串。然后解决方案很容易。您应该只将字节转换为关于Convert.ToBase64String函数的字符串(请参阅http://msdn.microsoft.com/en-us/library/8f9a8s97.aspx)。对于options参数,您可以指定是否要在输出中每76个字符后插入换行符。插入换行符是一种标准方式。可能Base64FormattingOptions.InsertLineBreaks它是您想要的选项。

关于Convert.FromBase64String函数,您可以将数据转换回二进制文件。