【发布时间】:2015-10-05 12:36:21
【问题描述】:
我想以某种方式将字符串存储在文件中,使其无法(轻松)读取。所以我使用这样的 BinaryFormatter:
using (FileStream fs = File.Create(sfDialog.FileName, 2048, FileOptions.None))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, Encoding.Unicode.GetBytes(this.BodyText));
}
this.BodyText 是要保存的字符串。
现在我正在努力从文件中读回它。我试过BinaryReader 没有成功,所以我想,我必须使用BinaryFormatter。我尝试了Deserialize 方法,但它返回一个不能转换为字符串的对象。 Convert.ToBase64String 也不能用于对象。
有人知道如何解决我的问题吗?
【问题讨论】:
-
如果您希望字符串不易阅读,您应该考虑适当的加密。
-
我建议你将你的字符串转换成 byte[] 并异或它的元素有一些价值。
-
如果你不想让它容易阅读,为什么不加密呢?
-
您需要在保存文件中包含字符串的长度或结束字符。您节省了 2048 个字节,但是当您读取字符串时,您的字符串可能只有 54 个字符,因此您不知道字符串的结尾在哪里。
标签: c# serialization binaryformatter