如何通过Java安全地连接到数据库?

如何通过Java安全地连接到数据库?,java,database,security,encryption,Java,Database,Security,Encryption,我希望使用Java连接到Mysql数据库,而不向任何可能反编译我的代码的人透露密码?我可以高效地连接到数据库,但我的方式会在代码中公开显示我的密码:(并且只希望得到关于如何隐藏密码的响应。感谢是advance,Josh Aurora假设要访问的数据库将在您的机器上,我想到两件事: 设置一个小型的安全REST服务(如图所示)这将在具有特定凭据的特定请求时,将密码传递到您的数据库。但是,如果您的应用程序位于某个公司防火墙之后,这可能是一个问题,因为您可能需要添加防火墙例外,而并非所有管理员都热衷于

我希望使用Java连接到Mysql数据库,而不向任何可能反编译我的代码的人透露密码?我可以高效地连接到数据库,但我的方式会在代码中公开显示我的密码:(并且只希望得到关于如何隐藏密码的响应。感谢是advance,Josh Aurora

假设要访问的数据库将在您的机器上,我想到两件事:

  • 设置一个小型的安全REST服务(如图所示)这将在具有特定凭据的特定请求时,将密码传递到您的数据库。但是,如果您的应用程序位于某个公司防火墙之后,这可能是一个问题,因为您可能需要添加防火墙例外,而并非所有管理员都热衷于此

  • 您可以混合使用和来加密数据库的密码,然后混淆所有代码

不过需要注意的是,这两种方法中的任何一种都有可能被破坏。这基本上是所有安全相关软件的规则

如果由我决定,我将使用第一种方法解决这个问题,并确保访问服务的凭据经常更改

但是,作为客户端解决方案的一部分使用的数据库包含非常敏感的数据,这符合客户端的利益,不可篡改,因此客户端很可能不会对其进行干扰,只要系统正常工作,他/她就会很高兴


另一方面,如果数据库没有部署到您的一台机器上,那么您就不能做太多。您可以建议将服务器存储在远程机器上,只能通过intranet访问,但除此之外,我认为您对此无能为力。

OAuth允许客户端连接,而不存储creden客户端上的tials(广泛用于移动设备或识别tweitte应用程序)。它还允许从恶意客户端删除访问权限。但我怀疑mysql是否直接支持这一点。因此,您必须使用某种服务层包装数据库。OAuth的一个可用iImplements:


(IIRC,由Qipe使用)

如果数据库位于用户的系统上,您无法对他们隐藏它。如果您的数据库位于外部服务器上,您可以在该服务器上创建php脚本,用作访问数据库的屏障。将密码以加密格式存储在属性文件中应该可以完成您的工作。我们需要有关您的c当前的“架构”。这是一个web服务器吗?软件和数据库位于何处?您将登录信息web.xml java类存储在何处?