Java-如何存储应用程序中使用的密码?
问题内容:
我正在开发一个从数据库读取一些数据的应用程序。通过标准登录/密码机制执行与数据库的连接。
问题是:如何存储数据库密码?如果我将其存储为类成员,则可以通过反编译操作轻松检索它。
我认为混淆并不能解决问题,因为在混淆代码中也可以轻松找到字符串密码。
有人有建议吗?
问题答案:
切勿将密码硬编码到您的代码中。最近在最危险的25个编程错误中提到了这一点。
将秘密帐户和密码硬编码到您的软件中非常方便-
对于熟练的反向工程师。如果所有软件上的密码都相同,那么当不可避免地知道该密码时,每个客户都会受到攻击。而且由于它是硬编码的,因此修复起来非常痛苦。
您应将配置信息(包括密码)存储在应用程序启动时读取的单独文件中。这是防止密码因反编译而泄漏的唯一真实方法(切勿首先将其编译为二进制文件)。
看到这个美妙的答案以获得更详细的解释:WilliamBrendel