Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Play加密数据库密码_Java_Encryption_Playframework_Cryptography_Passwords - Fatal编程技术网

Java Play加密数据库密码

Java Play加密数据库密码,java,encryption,playframework,cryptography,passwords,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 现在我想将其存储为加密密码 在寻找解决方案时,我看到了许多关于实现插件的文章。下面是我遇到的一个解决方案 在那个例子中,使用了play.PlayPlugin,但当我尝试它时,我得到了一个包NotFound

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

db.default.url="jdbc:oracle:thin:@HOST:PORT/SID"
db.default.user=USER
db.default.pass=PW
现在我想将其存储为加密密码

在寻找解决方案时,我看到了许多关于实现插件的文章。下面是我遇到的一个解决方案

在那个例子中,使用了play.PlayPlugin,但当我尝试它时,我得到了一个包NotFound错误。我是否需要插入外部jar文件,还是因为版本问题。我正在使用JavaPlay1.2

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

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


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

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

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

但是永远不要将密码检查到git(或subversion或其他任何东西)

相反,您应该做的是:

  • 将此行添加到
    应用程序.conf

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

  • secure.conf
    添加到您的
    .gitignore
    ,这样它就不会进入您的Git
  • 手动添加并更新服务器上的
    secure.conf
    -文件

  • 如果仍然需要维护加密密钥来加密/解密数据库密码,那么加密数据库密码有什么意义?我建议直接在数据库上限制数据库用户权限。另外,不要将用户密码以明文形式存储在数据库中。散列,并在用户登录时比较散列。在密码学中,您总是假设攻击者知道您的算法。一个已经进入你的系统的攻击者解决这个问题不会有问题。反对者建议@AdamMackler谢谢,现在已经修复了