如何存储密码以对mySQL进行身份验证

时间:2015-06-28 18:36:06

标签: c# mysql authentication passwords

我正在使用Visual Studio Community 2013和mySQL在c#中创建一个Windows WPF应用程序。 我所有这一切都很新,所以如果我没有意义,请原谅我。

我在google上搜索了答案,这里有堆栈溢出,并且发现了类似的问题,但没有找到任何满意的答案。

我目前(用于开发)拥有存储在settings.settings文件中的mySQL连接的用户名和密码(以纯文本格式),但显然这对于​​生产来说并不好,因为它不安全。我不确定如何最好地实现密码安全性。

我通常只是对密码进行salt / hash并根据哈希对用户进行身份验证,但是因为我需要连接到mySQL,因为我需要在连接字符串中传递密码(或者有另一种方法?)

我不介意记住密码'选项,但我并不反对要求用户在每次打开应用程序时输入密码。


我可以通过各种方式来编程:

  1. 以纯文本格式存储密码,每次进行查询时都会发送到mySQL。这显然不安全

  2. 每次进行查询时,都会加密并存储密码并解密/发送到mySQL。

  3. ,这稍微不那么不安全,但仍然不是很好
  4. 获取输入的密码,对mySQL进行身份验证,丢弃密码并在应用程序运行期间保持mySQL会话处于打开状态。

  5. Salt / Hash密码以对用户进行身份验证,一旦用户通过身份验证,就可以使用硬编码凭据连接到数据库。逆向工程此应用程序将为任何人提供SQL凭据

  6. 与#4相同,但在数据库中存储加密密码并使用哈希(加密与输入密码不同的密码)和未加密密码/以明文形式发送到mySQL。是否通过本地网络发送明文密码不安全?

  7. 做一件我无法想到的事情,这是一种更聪明的方式。这可能是正确的答案

  8. 那么,这是什么?

    提前感谢您的任何答案。

0 个答案:

没有答案