我正在制作使用数据库(mysql)的桌面应用程序(我们称之为应用程序)。更多应用的用户共享一个数据库用户。示例:John 和 Mike 应用程序用户以“dbuser”等身份连接到数据库。
问题是:如何有效地为数据库用户保存密码?(应用程序用户的密码存储在数据库中)。
我找到了可能的解决方案: 1. 在代码中 - 这实际上很愚蠢 :D 2. 在文本 INI 文件中 - 易于阅读!3.在外部文件中加密-很好,但需要访问应用程序。
我正在制作使用数据库(mysql)的桌面应用程序(我们称之为应用程序)。更多应用的用户共享一个数据库用户。示例:John 和 Mike 应用程序用户以“dbuser”等身份连接到数据库。
问题是:如何有效地为数据库用户保存密码?(应用程序用户的密码存储在数据库中)。
我找到了可能的解决方案: 1. 在代码中 - 这实际上很愚蠢 :D 2. 在文本 INI 文件中 - 易于阅读!3.在外部文件中加密-很好,但需要访问应用程序。
(应用程序用户的密码存储在数据库中)。
使用SHA1/SHA2算法加密存储的密码。这是最常用的技术。我不是 .NET 开发人员,但我很确定他们在某处提供了该功能。
当用户登录时,再次加密给定的密码并将其与存储的密码进行比较。如果相等,则让用户登录。
您可以将其以加密格式存储在 INI 文件中。恕我直言,这是最好的方法。我将连接字符串以加密格式存储在 .NET 应用程序的 App.config 中。
编辑:
要编辑连接字符串,我在 App.Config 文件 CSEncryption="Y|N|R" 的 AppSettings 中使用了另一个配置值
如果是Y,则连接字符串被加密,解密并使用它。
如果是N,连接字符串不加密,直接使用。
如果是 R,则连接字符串未加密,对其进行加密并更新连接字符串并在 App.Config 中将 CSEncryption 设置为“Y”。