【问题标题】:Hide passwords for MySQL隐藏 MySQL 的密码
【发布时间】:2014-08-10 15:39:48
【问题描述】:

我发现了很多关于这个主题的问题和很多答案,但没有一个适合我的情况。如果我错过了一两个,请随时给我推荐一个合适的。请记住,我只有 Java 的基本知识,只要解释得当,我总是愿意学习新事物。

我最近开始编写 Java 应用程序,需要安全登录。我认为最好的方法(对于多个用户)是在我可以完全访问的服务器上使用 MySQL 数据库(换句话说,我的 RaspBerry Pi)。我已正确设置数据库,并创建了我希望用于请求数据的用户帐户。

当用户打开应用程序时,它会检查应用程序是否可以访问互联网(通过 ping 多个网站),以及应用程序是否可以访问服务器(通过 ping 服务器本身)。可以公开服务器和数据库的位置。确认两个连接后,应用程序将启动,要求用户输入用户名和密码,并存储在 MySQL 数据库中。

真正的问题是连接到数据库,而不是让人们找到其他人的密码。我不希望一些孩子反编译我的应用程序并获取存储在数据库中的所有用户名和密码。我将如何安全地访问我的数据库(意思是,我将如何在不显示用户名和密码的情况下连接到它)?我还希望以加密形式将密码存储在数据库中,并在检索到密码后对其进行解密。最重要的问题是确保没有人可以反编译应用程序,找出我是如何做到的,然后自己做,给他们我试图隐藏的所有信息。

【问题讨论】:

  • 存储密码的哈希值而不是纯文本或加密密码
  • 我很好奇您在搜索中发现了什么,因为这是一个很常见的问题,不仅在这里,而且在其他网站上也是如此。您能告诉我们您找到的解决方案为何不适合您吗?否则,你会要求我们重写很多已经写好的并且写得很好的东西。
  • @HovercraftFullOfEels 我发现的大部分内容都是使用加密密码,该密码必须存储在应用程序中,因此允许其他任何人以与我相同的方式对其进行解密。我还发现人们会将密码以加密形式存储在属性文件中,然后由操作系统以文件权限的形式保护,但使用简单的应用程序很容易破解这些密码,如果不仅仅是您的计算机终端的话。第三种常见的解决方案是某种网络查询,我完全不熟悉,这意味着我认为效果不佳。

标签: java mysql database encryption passwords


【解决方案1】:

最好让每个用户输入自己的密码,而不是将其作为应用程序的一部分共享。它还有一个额外的优势,即能够在必要时阻止单个用户的访问,而无需重新分发您的应用程序。

你是把他们的密码缓存在个人电脑上的应用程序中,还是让他们每次都输入密码,这取决于你的偏执程度。

【讨论】:

  • 是的,确保服务器上的密码经过哈希处理并且连接是通过 SSL 进行的。 MySQL 具有用于密码散列的内置函数。让服务器进行加密/解密,所以如果有人可以访问表,他们只会看到加密的值。
  • 就像我说的,我对 Java 还不是很了解,这就是我学习的原因。你能给我一个关于如何做到这一点的教程的链接吗?
  • 我现在已经设置好了,所以它将加密的密码存储在数据库中,并将它们与用户输入的密码的加密版本相匹配,但我仍然不知道如何隐藏密码我用于连接数据库..
猜你喜欢
  • 2011-09-28
  • 1970-01-01
  • 2021-05-20
  • 2013-12-20
  • 2016-01-24
  • 2021-08-25
  • 1970-01-01
  • 2021-11-15
  • 2018-11-22
相关资源
最近更新 更多