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

标签 java database encryption passwords jasypt

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

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

  2. 将加密/解密密码存储在环境变量或源代码中。

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

我的问题:

  1. 存储加密密码的最佳做法是什么?
  2. 我可以在此处使用基于 key 的加密(即私钥/公钥)吗?

最佳答案

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

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

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

直接使用数据库进行公钥/私钥加密是很困难的,您需要一个中介来做到这一点。

关于Java:在属性文件中存储加密数据库(和其他)密码的最佳选择是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38539469/

相关文章:

java - java线程中的"Monitor"

php - 从 SELECT WHERE IN 查询 MySQL 中提取值

正则表达式最佳实践?

php - 我认为与 LEFT JOIN 有关的 SQL 语法错误?

php - 如何安全地存储网站的配置文件?

Python 从数据库中存储和检索密码的最安全方法

c# - 关于 AES (CBC) 和 IV 的问题(是否可以继续使用 aes(CBC) 加密?,...)

java - 在 Java 中如何从 Stream<ArrayList<Object>>> 到 ArrayList<Object>?

java - 无法在java中实现A Star

java - Virtuoso Jena 提供程序查询别名语法