在 Java 桌面应用程序中存储密码的推荐方法是什么?
我希望用户能够仅输入一次凭据,而不会再次收到提示。
在个人项目中,我一直在使用 Preferences API,但我假设这与将其存储为纯文本(安全方面)没有什么不同。
非常感谢
编辑:
非常感谢您的建议。似乎有些困惑,毫无疑问是因为我可能没有把问题说得很清楚......
我将给出一个假设的场景:
假设我正在为远程数据库创建一个简单的前端,它创建一个带有用户名/密码的连接字符串。通常,每次应用程序启动时都会提示用户输入用户名/密码组合。
将密码存储在用户机器中的最佳方式是什么,无需重新输入(在应用程序启动时自动连接)。
一种“记住我”的功能(我知道这本身并不是一个很好的做法......)
EDIT2:
感谢大家的回答。 Paŭlo Ebermann 提供的信息非常丰富,Chris Smith 的链接很有趣,但我接受了 JVerstry 的链接,因为 keystore 可能是我要走的路线。
最佳答案
您可以使用本地 keystore 来放置密码而不是 key 。
回答编辑:
keystore 非常适合您的需求。如果您需要额外的保护,您可以在用户启动应用程序时要求用户输入一个密码以访问所有密码。然后,您可以使用启动应用程序时使用的密码,通过简单的加盐拉伸(stretch)方法(生成加密 key )来保护存储的数据库密码。
关于java - 在 Java 中安全存储密码的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017688/