Java:在 属性 文件中存储加密数据库(和其他)密码的最佳选择是什么?

Java: What is the best option to store encrypted database (and other) passwords in property files?

我检查了 Jasypt 在 属性 文件中存储数据库加密密码的情况。它与 Spring 等有很好的集成,但是这些人提出的加密密码的方法对我来说看起来有点奇怪:

  1. 使用PBE(对称算法)加密。

  2. 将 encryption/decryption 的密码存储在环境变量或源代码中。

这两个选项看起来都不安全,而且有点不安全。

我的问题:

  1. 存储加密密码的最佳做法是什么?
  2. 我可以在这里使用基于密钥的加密(即 private/public 密钥)吗?

在我们的应用程序中,我们使用两种方法:

  1. 我们使用企业密码保险库来存储我们所有数据库的密码。我们的网络服务器每次都从保管库请求密码以连接数据库。

  2. 我们将加密的密码存储在属性文件中。 在应用程序启动期间,我们使用 class 加载程序读取属性文件并将其保存为系统变量并在需要时使用它。

直接使用 db 进行 public/private 密钥加密是很困难的,你需要一个中介来做到这一点。