Java - 连接到MySQL而不在代码中指定用户名和密码

时间:2013-10-26 18:03:35

标签: java android mysql database jdbc

我正在寻找一种方法来打开JDBC连接而不用明文指定我的数据库登录名和密码,因为应用程序将被分发,任何Java反编译器都会显示它们,允许用户轻松访问数据库。 / p>

有没有办法对它们进行加密,或将它们存储在其他地方?

2 个答案:

答案 0 :(得分:3)

看起来您想让Android应用程序直接与您的数据库通信?不要那样做。这是一个重大的安全漏洞。无论您如何加密凭证,都必须在程序执行期间的某处显示纯文本,任何拥有调试器的人都可以看到。正确的方法是在您的Web服务上使用API​​并从客户端调用该API。所有数据库事务都应在受信任的Intranet中进行。

答案 1 :(得分:1)

你为什么要这样做?通常,应用程序的业务方将具有此信息并连接到MySQL。在那里,用户无权访问任何代码。然后,您创建一个实际上可供公众访问的端点。在那里,您可以担心将用户名和密码内容传递给业务逻辑,而业务逻辑实际上也可以直接访问您的数据库。

基本上,不要在服务器端的任何地方打开jdbc连接。这是一项安全措施。