我正在寻找一种方法来打开JDBC连接而不用明文指定我的数据库登录名和密码,因为应用程序将被分发,任何Java反编译器都会显示它们,允许用户轻松访问数据库。 / p>
有没有办法对它们进行加密,或将它们存储在其他地方?
答案 0 :(得分:3)
看起来您想让Android应用程序直接与您的数据库通信?不要那样做。这是一个重大的安全漏洞。无论您如何加密凭证,都必须在程序执行期间的某处显示纯文本,任何拥有调试器的人都可以看到。正确的方法是在您的Web服务上使用API并从客户端调用该API。所有数据库事务都应在受信任的Intranet中进行。
答案 1 :(得分:1)
你为什么要这样做?通常,应用程序的业务方将具有此信息并连接到MySQL。在那里,用户无权访问任何代码。然后,您创建一个实际上可供公众访问的端点。在那里,您可以担心将用户名和密码内容传递给业务逻辑,而业务逻辑实际上也可以直接访问您的数据库。
基本上,不要在服务器端的任何地方打开jdbc连接。这是一项安全措施。