Java 隐藏MySQL的密码

Java 隐藏MySQL的密码,java,mysql,database,encryption,passwords,Java,Mysql,Database,Encryption,Passwords,我在这个话题上找到了很多问题和答案,但没有一个适合我的情况。如果我错过了一两个,请随意给我推荐一个合适的。请记住,我只掌握Java的基本知识,并且总是愿意学习新事物,只要它们被正确地解释。 我最近开始编写一个Java应用程序,需要安全登录。我认为最好的方法(对于多个用户)是在我有完全访问权限的服务器上使用MySQL数据库(换句话说,我的RaspBerry Pi)。我已经正确设置了数据库,并且已经创建了我希望用于请求数据的用户帐户 当用户打开应用程序时,它会检查应用程序是否可以访问internet

我在这个话题上找到了很多问题和答案,但没有一个适合我的情况。如果我错过了一两个,请随意给我推荐一个合适的。请记住,我只掌握Java的基本知识,并且总是愿意学习新事物,只要它们被正确地解释。

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

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


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

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


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

存储密码哈希而不是纯文本或加密密码我很好奇你在搜索中发现了什么,因为这是一个非常常见的问题,不仅在这里,在其他网站上也是如此。您能告诉我们您找到的解决方案如何不适合您吗?否则,您将要求我们重新编写许多已经编写好的内容。@HovercraftFullOfEels我发现的大部分内容都使用了加密密码,该密码必须存储在应用程序中,因此允许其他任何人以与我相同的方式对其进行解密。我还发现,人们会将密码以加密形式存储在属性文件中,然后由操作系统以文件权限的形式对其进行保护,但这些密码很容易通过简单的应用程序破解,如果不仅仅是计算机的终端。第三种常见的解决方案是某种web查询,我一点也不熟悉,这意味着我认为这种方法不太管用。是的,请确保服务器上的密码经过哈希处理,并且连接通过SSL。MySQL具有用于密码哈希的内置函数。让服务器进行加密/解密,这样如果有人访问表,他们只会看到加密的值。你能给我一个关于如何做到这一点的教程的链接吗?我现在已经把它设置好了,可以在数据库中存储加密的密码,并将它们与用户输入的密码的加密版本相匹配,但我仍然不知道如何隐藏用于连接数据库的密码。。