【发布时间】:2014-08-10 15:39:48
【问题描述】:
我发现了很多关于这个主题的问题和很多答案,但没有一个适合我的情况。如果我错过了一两个,请随时给我推荐一个合适的。请记住,我只有 Java 的基本知识,只要解释得当,我总是愿意学习新事物。
我最近开始编写 Java 应用程序,需要安全登录。我认为最好的方法(对于多个用户)是在我可以完全访问的服务器上使用 MySQL 数据库(换句话说,我的 RaspBerry Pi)。我已正确设置数据库,并创建了我希望用于请求数据的用户帐户。
当用户打开应用程序时,它会检查应用程序是否可以访问互联网(通过 ping 多个网站),以及应用程序是否可以访问服务器(通过 ping 服务器本身)。可以公开服务器和数据库的位置。确认两个连接后,应用程序将启动,要求用户输入用户名和密码,并存储在 MySQL 数据库中。
真正的问题是连接到数据库,而不是让人们找到其他人的密码。我不希望一些孩子反编译我的应用程序并获取存储在数据库中的所有用户名和密码。我将如何安全地访问我的数据库(意思是,我将如何在不显示用户名和密码的情况下连接到它)?我还希望以加密形式将密码存储在数据库中,并在检索到密码后对其进行解密。最重要的问题是确保没有人可以反编译应用程序,找出我是如何做到的,然后自己做,给他们我试图隐藏的所有信息。
【问题讨论】:
-
存储密码的哈希值而不是纯文本或加密密码
-
我很好奇您在搜索中发现了什么,因为这是一个很常见的问题,不仅在这里,而且在其他网站上也是如此。您能告诉我们您找到的解决方案为何不适合您吗?否则,你会要求我们重写很多已经写好的并且写得很好的东西。
-
@HovercraftFullOfEels 我发现的大部分内容都是使用加密密码,该密码必须存储在应用程序中,因此允许其他任何人以与我相同的方式对其进行解密。我还发现人们会将密码以加密形式存储在属性文件中,然后由操作系统以文件权限的形式保护,但使用简单的应用程序很容易破解这些密码,如果不仅仅是您的计算机终端的话。第三种常见的解决方案是某种网络查询,我完全不熟悉,这意味着我认为效果不佳。
标签: java mysql database encryption passwords