2014-06-19 136 views
0

我发现了很多关于此主题的问题,还有很多答案,但没有一个适合我的情况。如果我错过了一两次,请随时引荐我一个合适的。请记住,我只有Java的基本知识,并且总是愿意学习新事物,只要它们得到适当解释。隐藏MySQL的密码

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

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

真正的问题是连接到数据库,而无需人发现其他人的密码。我不希望某些孩子反编译我的应用程序,并获取存储在数据库中的所有用户名和密码。我将如何安全地访问我的数据库(也就是说,如何在不显示用户名和密码的情况下连接到它)?我也希望以加密形式将密码存储在数据库中,并在检索后将其解密。最重要的问题是确保没有人能够反编译应用程序,了解我是如何做到的,并自行完成,为他们提供我试图隐藏的所有信息。

+0

店哈希而不是纯文本或加密密码 –

+0

我很好奇你在搜索中发现了什么,因为这是一个很常见的问题,不仅在这里,而且在其他网站上。你能告诉我们你找到的解决方案不适合你吗?否则,你会要求我们重写那些已经写好的东西,写得很好。 –

+0

@HovercraftFullOfEels我发现的大部分内容都是使用一个加密密码,该加密密码必须存储在应用程序中,以便其他人可以像我一样解密它。我还发现,人们会将密码以加密形式存储在属性文件中,然后由操作系统以文件权限的形式保护密码,但如果不仅仅是您的计算机的终端,那么使用简单的应用程序很容易破解这些密码。第三种常见的解决方案是某种网络查询,我并不十分熟悉这一点,这意味着我看不到这样做。 – user3486718

回答

0

它可能更好地让每个用户输入自己的密码,而不是分享它作为应用程序的一部分。它具有额外的优势,可以在必要时阻止个人用户访问,而无需重新分发您的应用程序。

无论您在个人计算机上的应用程序缓存其密码或让他们进入它每次都是到你偏执的程度。密码

+0

是的,确保服务器上的密码被散列并且连接通过SSL。 MySQL内置密码哈希函数。让服务器执行加密/解密操作,如果有人能够访问表格,他们只会看到加密的值。 – vanoden

+0

就像我说的,我对Java还不太了解,这就是为什么我在学习。你能给我一个关于如何做到这一点的教程的链接? – user3486718

+0

现在我知道了设置以便在数据库中存储加密的密码,并把它们匹配用户输入密码的加密版本,但我仍然不知道如何隐藏我用来连接到数据库的密码。 。 – user3486718