繁体   English   中英

C#Winforms应用程序与Access DB的安全连接

[英]C# Winforms application secure connection to Access DB

我有一个使用OleDb连接到受密码保护的Access 2010数据库的C#2010 Winforms应用程序。 这不是在线应用程序!

我目前将密码以纯文本格式存储在使用Eazfuscator.NET进行了混淆的连接字符串中[我知道这是非常不安全的]。 我对一种安全地存储密码的方式感兴趣,这种方式无法通过反编译或任何其他实用方法获得。

我知道有一些方法可以通过对app / web.config中的连接字符串进行加密来为ASP.NET应用程序执行此操作,但是由于我的应用程序是桌面应用程序,因此它对我不起作用。

到目前为止,我还没有找到实现此目的的任何方法。

这是我想做的事情:

向该用户请求密码,因为将只有一个用户有权访问该数据库。 获取输入密码的哈希值(SHA1 / SHA512),从哈希值中选择一定数量的字符,对其加盐,然后将其添加到连接字符串中并尝试连接。

显然,如果用户忘记了密码,除了使用蛮力外,绝对没有其他方法可以访问数据库。

有什么方法可以在程序中存储连接字符串中使用的密码,以致于无法通过任何实际手段获得它?

您应该为数据库生成一个较长的随机安全密码,然后使用ProtectedData类对其进行加密。
这将使用用户的Windows登录密码对它进行加密,因此除非用户已登录,否则读取它是不切实际的。

您可以使用DSN并将用户名和密码存储在此处,而不是存储在应用程序中,但是任何知道DSN的应用程序都可以使用数据库,并且凭据在注册表中以纯文本格式提供。

您正在为什么辩护,使应用程序变得疯狂? 数据库? 是否有未经授权的用户坐在机器旁? 密码必须存放在某处...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM