在Java桌面应用程序中存储密码的推荐方式是什么?
我希望用户只能输入一次凭证,而不会再次提示。
在个人项目中,我一直在使用Preferences API,但我假设这与以纯文本格式存储(安全方面)没有什么不同。
非常感谢
编辑:
非常感谢您的建议。毫无疑问,这似乎有些混乱,因为我可能还没有把问题弄清楚。
我将给出一个假设的情况:
假设我正在为远程数据库创建一个简单的前端,该前端使用用户名/密码创建连接字符串。通常,每次应用程序启动时,都会提示用户输入用户名/密码组合。
在无需重新输入密码(在应用程序启动时自动连接)的情况下,将密码存储在用户计算机中的最佳方法是什么。
一种“记住我”功能(我本身并不知道这是一种很好的做法…)
编辑2:
谢谢大家的回答。PaŭloEbermann的手头上的问题非常有用,而Chris Smith的链接很有趣,但是我接受了JVerstry的链接,因为密钥库可能是我所采用的方法。
您可以使用本地密钥库,在其中可以放置密码而不是秘密密钥。
编辑答案:
密钥库非常适合您的需求。如果需要额外的保护,可以在用户启动应用程序时要求用户输入一个密码来访问所有密码。然后,您可以使用启动应用程序时使用的一个密码,通过一种简单的方法来保护存储的数据库密码(生成加密密钥)。