我有一个通过API连接到其他工具的Java应用程序。当前,所有密码都存储在应用程序本地。
我想将它们安全地存储在数据库中, 在数据库中哈希密码,并在运行时检索密码时解密。这是最好的方法吗?
谢谢
答案 0 :(得分:0)
您可以使用非对称密码学或其他任何方法安全地存储在数据库中
答案 1 :(得分:0)
我将创建一个Spring-Boot应用程序。 Spring使用BCryptEncoder / -decoder将密码安全地存储在数据库中。
如果您不想使用Spring,也许以下链接可以为您提供帮助。
https://www.stubbornjava.com/posts/hashing-passwords-in-java-with-bcrypt
答案 2 :(得分:0)
如果只有管理员可以访问正在运行应用程序的服务器,另一种替代方法是提供机密(密码)作为环境变量。
访问这些内容的最基本方法是System.getEnv(String envKey)
。例如:
export SOME_ENV_VARIABLE="your secret"; java -jar yourapplication.jar
;
如果您使用的是AWS或类似工具,则它们通常具有用于以安全方式存储这些机密的工具。
答案 3 :(得分:0)
您可以使用加密哈希存储密码。
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/