2009-12-08 74 views
0

保护winform数据的最佳方法是什么?换句话说,如何保护winforms c#项目的黑客数据?winform数据的安全性?

  1. 有一个包含25-30个表单的winform项目。它将数据存储到访问数据库。
  2. 如果我开始写加密/解密逻辑的所有形式,它将花费很多时间。
  3. 是否有任何.NET dll /技术可以自动encnrypt /解密之前存储数据库?
  4. 有没有一些有效的快速方法呢?

感谢, Karthick

+1

您需要详细说明。你想要保护什么?您如何以及在哪里存储数据?数据是否在任何地方发送?你需要限制对用户的访问吗?尝试并提供更多细节。 – 2009-12-08 22:14:27

+0

黑客怎么样,以什么方式?防止未经授权的用户启动您的应用程序?防止用户输入或修改数据?你的问题太模糊回答...... – 2009-12-08 22:14:41

+0

谢谢。我已经更新了,请。分享你的建议。 – Karthick 2009-12-08 23:42:46

回答

2

正如评论所说的,取决于你试图保护什么。

如果您尝试保护访问权限,则可以使用Identity and Principals来确定基于线索的身份验证,权限和角色。

如果您将敏感字符串存储在内存中,请使用SecureString而不是常规叮咬。

如果您指的是阻止某人“破解”您的软件,请使用混淆软件来阻止任何攻击者。

首先你必须定义你正在寻找的安全领域,然后只是研究问题......或者在这里问问题!

0

因此,如果我理解正确,您希望在将数据放入数据库时​​进行加密,并在您再次拿出时进行解密?

首先,知道你是谁来保护数据很重要。应用程序的其他用户?可能访问物理机器的外部人员?

您应该也可能让您的代码结构化,以便对数据库的所有访问都通过单个数据层。也许是单个类或一组类来完成所有的数据访问代码。这意味着,当数据进出数据库时,加密和解密不需要用于所有表单。

在事物的加密方面,您需要确定您将用作加密数据的密钥。加密数据的最快,也可能是最简单的方法是使用DPAPIProtected Data类。

受保护的数据类将允许您对数据进行加密,以便它只能在加密的同一台计算机上解密,并且可以给出一个附加值,以便只有您的应用程序或其他知道额外数据的应用程序值可以解密它。

另一种选择可能是加密整个数据库,但我不确定Access对此有什么支持。如果Access没有内置任何东西,使用加密文件系统和File.Encrypt可能会起作用。

这些可能或可能不适用于您的方案,它取决于您试图停止的人以及需要多长时间来保护数据。