Java Play加密数据库密码

时间:2015-08-19 10:17:32

标签: java encryption playframework cryptography passwords

我正在开发一个Java Play应用程序,我将数据库密码以纯文本形式存储在application.conf文件中。

db.default.url="jdbc:oracle:thin:@HOST:PORT/SID"
db.default.user=USER
db.default.pass=PW

现在我想将其存储为加密密码。

在寻找解决方案时,我看到很多关于实现插件的技巧。以下是我遇到的解决方案。

Encrypting db password in application.conf

在该示例中,使用了play.PlayPlugin但是当我尝试它时,我得到一个包找不到错误。我是否需要插入外部jar文件,或者是因为版本问题。我正在使用Java play 1.2

除了插件之外,还有其他方法可以以加密格式存储密码。

2 个答案:

答案 0 :(得分:3)

您不需要加密自己系统内的任何内容。只需确保您的服务器是安全的。

由于您需要让您的应用程序访问密码,因此无论如何,有权访问您系统的攻击者都可以获取您的密码。

永远不会将您的密码检查为git(或颠覆或其他)!

相反,你应该做的是:

  1. 将此行添加到application.conf

    include "secure.conf"
    
  2. secure.conf - 文件夹中创建conf。并将所有凭据保存在此文件中。

  3. secure.conf添加到您的.gitignore,因此不会进入您的Git。
  4. 手动添加和更新服务器上的secure.conf - 文件。

答案 1 :(得分:-1)

  

除了插件之外,还有其他方法可以以加密格式存储密码。

您可以创建自己的加密和解密密码的公式。例如,您可以将密码存储在字符数组中,将字符转换为字节,对这些字节执行某些操作并将其保存到文件中。对于解密,你只需要向后做所有这些事情。