隐藏或保护 .txt 保存数据 c#

Posted

技术标签:

【中文标题】隐藏或保护 .txt 保存数据 c#【英文标题】:Hide or Protect .txt save data c# 【发布时间】:2018-06-07 08:38:37 【问题描述】:

我有一个程序,用户可以在其中将数据放入列表框中,并且可以通过单击按钮将列表框保存为加密的 .txt 文件。

在任何程序启动时,程序都会加载并将保存数据解码回列表框。

因此,如果有人打开 save.txt,没有人可以读取它,因为它已加密,但用户仍然可以操作加密的文本文件,因此无法将其加载回我的 listBox。

是我的表单应用程序将此 .txt 保存在受密码保护的文件夹中还是制作诸如不可见的 .txt 文件之类的一种方式,只有程序才能看到?

【问题讨论】:

请参阅msdn.microsoft.com/en-us/library/… - 尽管可以将 Windows 资源管理器配置为显示隐藏文件。另见:codeproject.com/Articles/20880/… 如果您将该文件保存在用户 Documents 文件夹中,它不应该在设计上已经受到保护以供写入吗?假设您没有在 Windows 95 上运行该程序 .... 如果人们不是使用相同的windows用户登录,只需为每个用户设置读写的文件权限。如果没有,请将数据保存到数据库或服务器,以防止其他人损坏文件。 见System.Security.Cryptography 【参考方案1】:

您可以将您的文件设置为隐藏,甚至给它一个系统属性,这可能是一种预防措施,但仍然不是很安全。

您可以使用 SqlServer 数据库来保存您的列表,它会为您处理加密。 (当然,如果用户有管理员权限)他仍然可以打开和操作其数据。

您也可以使用Properties.Settings (AppSettings),但正如我已经说过的,每个选项都有其优势,但对于具有特权的用户而言,并非 100% 安全。

【讨论】:

【参考方案2】:

您需要解决的第一件事是,如果您想太多,没有充分隐藏它并加密,为什么人们会追踪您的文件并弄乱它?

但是,您确实有很多选择,尽管您可以尽可能多地隐藏它,但阻止肮脏的小手指触摸您的数据的唯一方法是放在远程 Web 服务器后面。

如果失败了,

您可以将其填充到具有受限权限的数据库中 将其放在不太明显的应用设置中 和/或创建一个帐户并在您的应用程序中模拟该用户并以编程方式限制对您文件的权限 将其隐藏在注册表中 (meh) 你可以做一些奇怪的事情,比如将它附加到 dll 的末尾 即使更改文件的扩展名,并在社会学上模拟其他文件类型(如 exe 或 dll),也可以使其不那么明显

如果你真的想限制它,只需创建一个网络服务器,给用户一个登录名和密码,然后把它保存在那里,没有脏的小手指。

【讨论】:

以上是关于隐藏或保护 .txt 保存数据 c#的主要内容,如果未能解决你的问题,请参考以下文章

新手坐等c#控制台console输出的数据保存到txt中。。。。

C# 将多个文本框保存到一个 .txt 文件中

在c#中保存datagridview中的数据

Java保存简单数据

用于“未保存数据”保护的客户端/JS 框架?

循环遍历 Excel 工作表并使用 C# 将文本保存到 TXT 文件中