我正在使用Visual Studio Community 2013和mySQL在c#中创建一个Windows WPF应用程序。 我所有这一切都很新,所以如果我没有意义,请原谅我。
我在google上搜索了答案,这里有堆栈溢出,并且发现了类似的问题,但没有找到任何满意的答案。
我目前(用于开发)拥有存储在settings.settings文件中的mySQL连接的用户名和密码(以纯文本格式),但显然这对于生产来说并不好,因为它不安全。我不确定如何最好地实现密码安全性。
我通常只是对密码进行salt / hash并根据哈希对用户进行身份验证,但是因为我需要连接到mySQL,因为我需要在连接字符串中传递密码(或者有另一种方法?)
我不介意记住密码'选项,但我并不反对要求用户在每次打开应用程序时输入密码。
我可以通过各种方式来编程:
以纯文本格式存储密码,每次进行查询时都会发送到mySQL。这显然不安全
每次进行查询时,都会加密并存储密码并解密/发送到mySQL。
获取输入的密码,对mySQL进行身份验证,丢弃密码并在应用程序运行期间保持mySQL会话处于打开状态。
Salt / Hash密码以对用户进行身份验证,一旦用户通过身份验证,就可以使用硬编码凭据连接到数据库。逆向工程此应用程序将为任何人提供SQL凭据
与#4相同,但在数据库中存储加密密码并使用哈希(加密与输入密码不同的密码)和未加密密码/以明文形式发送到mySQL。是否通过本地网络发送明文密码不安全?
做一件我无法想到的事情,这是一种更聪明的方式。这可能是正确的答案
那么,这是什么?
提前感谢您的任何答案。