我确定已经有很多讨论,但如何在应用程序中存储密码? (我的意思不是用户密码存储在数据库中的表中,而是用于建立连接字符串的密码)如何存储数据库密码
我见过这样的建议,例如将它存储在一个平面文件(如xml文件)中,然后读取它+在运行时解密它。如果这个应用程序在服务器上运行,这是一个非常好的选择,但是如果应用程序将被部署到最终用户的电脑上呢?即平面文件将被复制到用户的电脑。这仍然是一个好习惯吗? (我的直觉是'不')
我知道SecurityString的存在,但是我也在一篇文章中看到SecurityString也可以很容易地分解。
使用Windows 7附带的密码保险箱是一个好主意吗?有没有什么好的例子,以编程方式使用它?我在msdn中看到过一个例子,但是首先它被标记为'windows 8',其次当我下载文件并在visual studio 2012 EXPRESS中打开解决方案时,它未能打开。
任何建议,欢迎...非常感谢。
--update--
比方说,应用程序将在个人电脑上的Windows域内屈指可数运行。 (1)启动时,应用程序将执行LDAP认证(活动目录)。只有在认证成功后,应用程序才会继续执行,(2)应用程序可以连接到数据库,使用用户输入查询数据库,这是db passwd进入播放以建立连接字符串的位置(不,这不是SQL SERVER数据库,所以我不认为使用Windows身份验证的选项是可行的,除非使用商业插件)。
db驻留在同一个域中,并且已经设置为允许一定范围的IP地址,并且已启用SSL。总之,在这个意义上它是相当安全的。唯一不安全的是如何存储应用程序的db passwd。
引起我注意的是Mysql Workbench。它将保存数据库连接,包括密码 - 存储在密码保管库中。这是mysql自己实现的一个密码库,我很好奇它是如何完成的。
你在使用什么数据库,它托管在哪里?它是否与客户端位于同一个Windows域中? – Jodrell
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –
可能的重复[如何安全地存储数据库登录名和密码在C#应用程序?](http://stackoverflow.com/questions/11685206/how-do-i-safely-store-database-login-and-password -in-ac-sharp-application) – Barmar