Java Play加密数据库密码
我正在开发一个Java Play应用程序,并将数据库密码以纯文本形式存储在application.conf文件中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
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
,这样它就不会进入您的Gitsecure.conf
-文件如果仍然需要维护加密密钥来加密/解密数据库密码,那么加密数据库密码有什么意义?我建议直接在数据库上限制数据库用户权限。另外,不要将用户密码以明文形式存储在数据库中。散列,并在用户登录时比较散列。在密码学中,您总是假设攻击者知道您的算法。一个已经进入你的系统的攻击者解决这个问题不会有问题。反对者建议@AdamMackler谢谢,现在已经修复了