database - Play Framework 2.1密码加密

标签 database encryption playframework cryptography passwords

<分区>

我有一个与数据库对话的应用程序,我必须从我的 application.conf 加载数据库连接的凭据。我想要我的凭据,至少是在 application.conf 文件中加密的密码。我没能找到一些很好的文档来说明它如何与 Play 结合在一起。

我的意思是我可以使用任何加密库,加密密码,将其存储到 application.conf 并在连接到数据库时解密。我想知道的是关于它如何与 Play 框架相适应的一些建议。是否有一些内置插件或可用于加密的东西?

最佳答案

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

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

但是永远不要将您的密码检查到 git(或 subversion 或其他)中!

相反,您应该这样做:

  1. 将此行添加到您的 application.conf:

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

  3. secret.conf 添加到您的 .gitignore,这样它就不会进入您的 Git。
  4. 在您的服务器上手动添加和更新 secret.conf 文件。

如果您使用的是 Linux 系统,控制对 secret.conf 文件的读取权限也很明智,就像@Roman 所说:

Make sure only the user running play has rights to read that file.

关于database - Play Framework 2.1密码加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628237/

相关文章:

javascript - 是否可以在 Php 中加密 JWT token 并在 Javascript 中解密?

powershell - 使用公钥对密码字符串进行加密和编码

encryption - 大 O 符号 : Encryption Algorithms

scala - Play 2.3.8 的多个 SLF4J 绑定(bind)

node.js - 从 NodeJS 或 Play 安排 Spark 作业!服务器

javascript - 将本地数据与 Angular 资源一起使用

sql - 提高 Sql Delete 的性能

cassandra - CQL 在输入 '(' 错误处没有可行的选择

java - 获取Play框架可与Gradle和IntelliJ Idea一起使用

java - 如何在android中没有LiveData的情况下使用房间和数据库?