2012-02-04 92 views
1

如何将字符数组序列化为文件?我这样做的全部原因是,你不能只打开文件和编辑数据,但是我要告诉你的其他内容。我创建了一个字符数组,并将arr[0]设置为'a',将arr[1]设置为'b',将arr[2]设置为'c'。然后我使用.NET来序列化数组。我运行它,打开该文件,它读取此:
序列化数据

如前所述上面,我不希望有人刚打开文件和编辑数据,但是这清楚地表明这是可能的。

代码:

arr[0] = 'a'; 
arr[1] = 'b'; 
arr[2] = 'c'; 

FileStream stream = new FileStream(Application.dataPath+"/testing.wld", FileMode.Create); 
BinaryFormatter bFormatter = new BinaryFormatter(); 

bFormatter.Serialize(stream, arr); 
stream.Close(); 

我该如何解决这个问题?谢谢。

+2

如果不希望字符可识别,则必须以某种方式对数据进行编码。 – Bill 2012-02-04 02:04:31

回答

0

你不问关于序列化。您正在询问有关混淆/ schiffering /更高级的解决方案。

如果你想在.NET中使用内置的序列化类,你将不得不实现你自己的(XML)编写器/阅读器 - 在这个函数中实现一个混淆的选择例程并确保其为1:1。

但它当然不会是“安全”的,只是延迟一段时间穿透者。

+0

原谅我的傲慢,但我想数据存储为字节,因此文件大小很小。我知道一个ANSCII字符是一个字节,但是对它进行编码或者对它进行混淆,或者其他什么都不是ANSCII字符。我想我问的是你可以有一个普通的文件和具有相同信息的编码文件是相同的大小?也许我应该开始一个新的问题,但似乎很简单。 – MrSplosion 2012-02-04 03:36:30

+0

schiffering不会。添加到文件大小。例如Byte1异或字节2仍然是一个字节大。 – stefan 2012-02-04 03:40:27