如何在java中安全地存储加密密钥?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (122)

我有一个Java属性对象,其中包含Web服务的身份验证信息。我需要加密这些数据,但我不知道需要存储加密密钥的位置才能保持安全。

加密这些数据并以安全的方式检索它的最佳做法是什么?

使用密钥库有什么好处?

ws_user=username
ws_password=password
ws_url=https://www.whatever.com/myservice
提问于
用户回答回答于

你的问题是常见的问题。在Linux中,用户密码存储在纯文本文件中。尽管只存储了密码哈希值,但如果攻击者能够访问该文件,他将不会花费很长时间才能使用脱机字典攻击发现某个密码。在这种情况下,操作系统依赖文件权限拒绝未经授权的用户访问。在你的情况下,它没有太大的不同。您必须正确配置密码文件权限并确保服务器的物理安全性。

用户回答回答于

这是一个鸡蛋问题。 然后,您需要找到密钥存储的密码存储位置,等等......

根据您的安全要求和需要,您可以使用对称加密来加密数据,并使用客户端证书认证通过远程服务器(您的服务器)检索密码。

或者你可以使用对称加密来加密数据,并在你的jar中加密硬编码,这是不安全的,但需要一些努力来找到它,你可以将责任委派给文件系统权限谁可以访问你的文件。

扫码关注云+社区