java - 如何存储需要真实值的密码?

标签 java security encryption

我有一个密码/ key ,需要在我的 Java 程序中使用。我需要将它与外部应用程序一起使用,因此无法选择双向加密。我对单向加密的问题是解密 key 将位于我的代码周围的某个地方,因此它最终不再安全。那么如何安全地存储这个密码呢?我正在考虑将其存储在读入的外部文件中,但我不知道这对于部署等来说效果如何。

最佳答案

正如评论所说,您无法以安全的方式执行此操作。 任何允许您检索密码的行为都将为其他人提供这样做的可能性。 您可以做的是为每个安装设置单独的密码,并让安装应用程序的用户/管理员担心密码的安全。这将允许他们将密码存储在单独的文件中或在应用程序启动期间或任何感觉足够安全的情况下输入密码。

如果密码是外部服务的,那么他们很可能希望对使用情况进行一些控制。

如果密码是您自己的服务,您可能会问自己您的“威胁模型”是什么。如果有人找回密码,这真的是一个问题吗?如果是,您可能希望能够关闭该密码而不影响所有用户/安装。

关于java - 如何存储需要真实值的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33677426/

相关文章:

encryption - 无法从 spring 配置服务器/客户端解密

java - XSS攻击防范

java - 使用包括 block 初始值设定项的匿名类初始化静态 ArrayList 字段

java - 如何布局? (JFrame、JPanel 等)

java - 不加return语句避免DD异常

web-services - 如何在 Rally 中通过 SSO 获取安全 token ?

.net - Rfc2898DeriveBytes 与密码的 Sha2 哈希生成

haskell - 使用文件中的 PrivateKey 进行 RSA 签名

c++ - 编写使用 RC4 流密码的 C++ iostream。如何优化我的实现?

java - 具有二进制数据的 REST 服务