程序如何保存密码java_关于Java:Java – 如何存储应用程序中使用的密码?

本问题已经有最佳答案,请猛点这里访问。

我正在开发一个从数据库中读取数据的应用程序。与数据库的连接是通过标准的登录/密码机制进行的。

问题是:如何存储数据库密码?如果将它存储为类成员,则可以通过反编译操作轻松地检索到它。

我认为混淆不能解决这个问题,因为字符串密码也很容易在混淆的代码中找到。

有人有建议吗?

是您的数据库,还是客户的数据库。如果是客户的数据库,他应该知道它的密码。如果是你的数据库,它在哪里?为什么客户应用程序直接访问数据库,而不经过存储密码的服务器,以及客户机不可用字节码的服务器?

我通常将它硬编码存储在应用程序中,作为用rot13加密的字符串。(开玩笑)。

如果你正在使用JavaEE,有一些标准的机制来处理这个问题…但我想你不是。如果您的应用程序允许对数据库的完全访问,那么隐藏密码对安全性没有帮助。

相关问题:stackoverflow.com/questions/992019/…

不要将密码硬编码到代码中。这是最近在25个最危险的编程错误中提出的

Hard-coding a secret account and password into your software is extremely convenient -- for skilled reverse engineers. If the password is the same across all your software, then every customer becomes vulnerable when that password inevitably becomes known. And because it's hard-coded, it's a huge pain to fix.

您应该将配置信息(包括密码)存储在应用程序启动时读取的单独文件中。这是防止由于反编译而导致密码泄漏的唯一真正方法(不要首先将其编译成二进制文件)。

更详细的解释请看这个精彩的答案:威廉·布伦德尔

一些数据应该是可配置的。正如您刚才所说,它可能是一个username和password或一些常见的datas;通常我们所做的是创建一个属性配置页。我以前做的是使用一个XML文件,把你的password/username保存在一些encrypted格式中。您可以轻松解析XML以检索连接密码。

这确保了您的密码可以随时更改的可靠性。这不仅仅指密码。但您所使用的任何数据,这些数据将不时配置。

对于一个小而简单的应用程序,如果你不想涉及很多其他的安全措施,这可能是一个配置选项。部署应用程序时,它可以读取指定了数据库连接属性的配置文件。这意味着应用程序本身不知道密码,但您需要访问服务器才能找到密码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值