我希望使用Java连接到Mysql数据库而不向任何可能反编译代码的人透露密码?我可以有效地连接到数据库,但我的方式将在代码中公开显示我的密码:(并且只希望如何隐藏密码的响应。感谢提前,Josh Aurora
答案 0 :(得分:1)
OAuth允许客户端连接而无需在客户端上存储凭据(在移动设备上广泛使用或识别tweitte应用程序)。它还允许从恶意客户端删除访问权限。但我怀疑mysql直接支持这个。所以你必须用某种服务层包装你的数据库。 OAuth的一个可用的想法:
http://code.google.com/p/oauth-signpost/
(IIRC,Qipe使用)
答案 1 :(得分:0)
假设将要访问的数据库将在您的计算机上,我会想到两件事:
设置一个小型安全REST服务(如图所示here),该服务将根据具有特定凭据的特定请求将密码传递给您的数据库。但是,如果您的应用程序位于某些公司防火墙后面,则可能会出现问题,因为您可能需要添加防火墙例外,这是所有管理员都不热衷的事情。
您可以使用Cryptography和Obfuscation的混合来加密数据库的密码,然后对所有代码进行模糊处理。
但是,作为一个注释,这些方法中的任何一种都可以及时破坏。这基本上是关于所有安全相关软件的规则。
如果由我决定,我会使用第一种方法解决此问题,并确保经常更改访问服务的凭据。
但是,作为客户端解决方案一部分使用的数据库包含非常敏感的数据,客户的利益是不要篡改,因此客户很可能不会乱用它,他/她会很开心因为系统有效。
另一方面,如果数据库未部署到您的某台计算机上,那么您无法真正做到这一点。您可以建议将服务器存储在只能通过Intranet访问的远程计算机上,但除此之外,我不认为您可以做很多事情。