如何在数据库中安全地存储 java 应用程序密码
how to store java application password safely in database
我有 java 应用程序通过 API 连接到其他工具。目前所有密码都存储在本地应用程序中。
我想将它们安全地存储在数据库中,
在数据库中散列密码并在 运行 时间检索密码时解密。这是最好的方法吗?
谢谢
您可以使用非对称加密 或任何其他方法安全地存储在数据库中
我会创建一个 Spring-Boot 应用程序。 Spring 使用 BCryptEncoder /-decoder 以安全的方式将密码存储在数据库中。
如果您不想使用 Spring,也许以下 link 可以帮助您。
https://www.stubbornjava.com/posts/hashing-passwords-in-java-with-bcrypt
如果只有管理员可以访问应用程序 运行 所在的服务器,另一种选择是提供机密(密码)作为环境变量。
访问这些内容的最基本方法是 System.getEnv(String envKey)
。例如:
export SOME_ENV_VARIABLE="your secret"; java -jar yourapplication.jar
;
如果您使用 AWS 或类似的东西,他们通常会提供以安全方式存储这些秘密的工具。
您可以使用加密哈希来存储密码。
https://auth0.com/blog/hashing-passwords-one-way-road-to-security/
如果您想要额外的安全性,那么您可以在散列中添加盐。
https://auth0.com/blog/adding-salt-to-hashing-a-better-way-to-store-passwords/
我有 java 应用程序通过 API 连接到其他工具。目前所有密码都存储在本地应用程序中。
我想将它们安全地存储在数据库中, 在数据库中散列密码并在 运行 时间检索密码时解密。这是最好的方法吗?
谢谢
您可以使用非对称加密 或任何其他方法安全地存储在数据库中
我会创建一个 Spring-Boot 应用程序。 Spring 使用 BCryptEncoder /-decoder 以安全的方式将密码存储在数据库中。
如果您不想使用 Spring,也许以下 link 可以帮助您。
https://www.stubbornjava.com/posts/hashing-passwords-in-java-with-bcrypt
如果只有管理员可以访问应用程序 运行 所在的服务器,另一种选择是提供机密(密码)作为环境变量。
访问这些内容的最基本方法是 System.getEnv(String envKey)
。例如:
export SOME_ENV_VARIABLE="your secret"; java -jar yourapplication.jar
;
如果您使用 AWS 或类似的东西,他们通常会提供以安全方式存储这些秘密的工具。
您可以使用加密哈希来存储密码。
https://auth0.com/blog/hashing-passwords-one-way-road-to-security/
如果您想要额外的安全性,那么您可以在散列中添加盐。
https://auth0.com/blog/adding-salt-to-hashing-a-better-way-to-store-passwords/