如何在桌面应用程序中有效保存数据库密码?

时间:2010-01-28 14:46:46

标签: database desktop-application database-security

我正在制作使用数据库(mysql)的桌面应用程序(让我们称之为app)。 更多应用程序的用户共享一个数据库用户。 示例:John和Mike app用户以“dbuser”等方式连接到DB。

问题是:如何有效保存数据库用户的密码?(应用用户的密码存储在数据库中)。

我发现可能的解决方案: 1.在代码中 - 这实际上非常愚蠢:D 2.在文本INI文件中 - 易于阅读! 3.在extern文件中加密 - 很好,但需要访问app。

2 个答案:

答案 0 :(得分:1)

您可以以加密格式将其存储在INI文件中。这是恕我直言的最佳方式。我以加密格式将连接字符串存储在.NET应用程序的App.config中。

编辑:

要编辑连接字符串,我在App.Config文件的AppSettings中使用另一个配置值CSEncryption =“Y | N | R”

如果是Y,则连接字符串被加密,解密并使用它。

如果是N,连接字符串未加密,请直接使用。

如果是R,则连接字符串未加密,加密并更新连接字符串并在App.Config中将CSEncryption设置为“Y”。

答案 1 :(得分:1)

  

(app用户的密码存储在数据库中)。

使用SHA1/SHA2算法加密存储的密码。这是最常用的技术。 我不是.NET开发人员,但我很确定他们在某个地方提供了这个功能。

当用户登录时,再次加密给定的密码并将其与存储的密码进行比较。如果它们相等,请让用户登录。