我有一个程序状态的日志。此日志可以手动或保存在文件上的时间间隔以进行持久存储。在将其保存到文件之前,使用RNCryptor加密。
我当前追加(保存)到文件流:
答案 0 :(得分:0)
答案 1 :(得分:0)
你可以做很多事情:
最简单的方法是将密文编码为文本(例如使用Base64),并将每个编码的密文写入新行。您需要对此进行编码,因为密文本身可能包含可以解释为换行控制字符的字节,但不会发生文本编码。这样做的问题是它不必要地炸毁了日志(例如,如果使用Base64,则降低33%)
您可以在每个未编码的密文前加上其长度(例如big-endian int32编码),并按原样以二进制模式写入文件。如果从头开始读取文件,则可以区分每个密文,因为您知道下面的密文有多长以及下一个编码长度何时开始。爆炸只与每个密文的密文长度编码一样大。
在密文之间使用二进制分隔符(如0x0101),但这样的分隔符可能仍会出现在密文中,因此如果您在密文中找到某个分隔符,则需要将其转义。为了做对,这有点棘手。
如果日志量很小(几MB),那么您可以找到一个附加到ZIP文件的库。