2011-05-29 58 views
3

我正在查看类似的问题,但我没有找到正确的答案,我认为必须有一些安全的解决方案。哪里存储数据库密码安全在Java桌面应用程序

我有客户端 - 服务器应用程序。客户端连接到服务器上的中央MySQL数据库。我的问题是如何在客户端桌面应用程序上保护存储数据库密码。现在我将它以隐藏形式存储在java属性文件中。但属性文件是可读的,并且在反编译我的应用程序之后,每个人都可以看到我使用哪个crypt函数对密码进行编码,并且可以轻松获取密码。所以我认为如何在客户端应用程序中安全地存储数据库密码是没有办法的,对吗?

解决方案可以是客户端应用程序将与服务器握手以获取数据库密码,是否有任何规则或模式如何执行此握手?

+1

我找到了这个问题的详尽答案:http://stackoverflow.com/questions/442862/how-can-i-protect-mysql-username-and-password-from-decompiling/442872#442872 – HPCS 2011-11-20 18:10:54

回答

2

请看OAuth进行授权。

+0

我不'看看这有助于保护数据库密码?您需要在服务器上安装一个OAuth Web服务来为验证的客户端提供密码 - 您是否知道这样的事情? – 2011-05-29 11:06:02

+0

不,但你可以用正确的框架构建一个。 – 2011-05-29 20:02:20

+0

我同意Simon G.,OAuth是一个很好的解决方案,因为它只在本地客户机上存储令牌。然而,比这更基础的是,我强烈建议在客户端和数据库之间放置一个应用服务器。将数据库暴露在开放端口上的互联网并不是一个好主意,它可能比在你的jar中存储密码的威胁更大。如果您仍然想直接与数据库交谈,则可以配置您的应用程序服务器以将授权用户对数据库的请求进行代理。再次,我会使用OAuth进行身份验证。 – gwood 2011-06-06 20:16:44

相关问题