2014-03-29 129 views
0

我有Serialized所有Dictionaries在我的应用程序中的一个文件。所以当我打开这个文件时,我可以看到很多关于我的类名和已经与文件一起保存的信息等。 这样安全吗?每个人都可以打开一个由我的应用程序创建的保存文件,并查看我使用过的哪些类?这里是我用来Serialize我对象的方法:安全问题关于序列化C#

Serialization of two Dictionaries at once

我有什么选择保存在我的应用程序文件我的对象。

+0

取决于你有什么样的应用程序 – thumbmunkeys

+0

你是否打算长时间存储序列化信息?尽管我从未见过这种需求。 – Rahul

回答

2

是的,他们将能够看到序列化对象的结构(也许如果你将它序列化为二进制文件,这有点困难,但没有多大帮助)。

但是,无论如何,任何人都可以看到您的源代码,只需考虑.NET Reflectorildasm。我个人不会担心,我没有看到任何问题。

+0

这是正确的。此外,除了学习/测试目的外,可能没有必要永久存储序列化的目标文件。所以,他们应该被认为是安全的。 – Rahul

2

您可以加密文件以隐藏它的内容。因此,要读取加密文件,您需要将其读取到内存中,解密,然后传递到反序列化Formatter

1

在我看来,你不应该害怕它..但这取决于你的需要。 如果您认为这对您很重要,我会建议将数据存储在其他地方(远程存储)。

您将有隐藏的内容3层的替代品:

  1. 加密的对象,并对其进行序列化(最适合本地仓储和邮政) - http://msdn.microsoft.com/en-us/library/as0w18af(v=vs.110).aspx
  2. 序列化对象,加密的文件(更糟糕,你将不得不处理删除文件) - http://support.microsoft.com/kb/307010
  3. serialaztion二进制 - 最坏的打算,并没有真正的工作 - 你可以打开如图中的txt文件发生了什么事情上

所以,如果这是您程序中的重要内容,我认为第一种方法将是最好的。