我有一个 C# 2010 Winforms应用程序,它使用 OleDb 连接到受密码保护的 Access 2010 数据库。这不是在线申请!
我目前将密码以纯文本形式存储在连接字符串中[我知道这非常不安全],它使用Eazfuscator.NET进行了混淆。我对一种以无法通过反编译或任何其他实用方法获取密码的方式安全存储密码的方法感兴趣。
我知道有一些方法可以通过加密 app/web.config 中的连接字符串来为 ASP.NET 应用程序执行此操作,但它对我不起作用,因为我的应用程序是桌面应用程序。
到目前为止,我还没有找到任何方法来实现这一点。
这是我想做的事情:
向用户请求密码,因为只有一个用户可以访问数据库。获取输入密码的哈希(SHA1 / SHA512),从哈希中选择一定数量的字符,对其进行加盐,将其添加到连接字符串并尝试连接。
显然,如果用户忘记了密码,除了使用暴力破解之外,绝对没有其他方法可以访问数据库。
有没有办法将连接字符串中使用的密码存储在程序中,从而无法通过任何实际手段获得?