我在哪里可以在本地存储已保存的密

时间:2015-03-18 07:13:39

标签: java security

与浏览器类似,我的应用程序需要在本地保存一些密码,以保存用户每次输入的痛苦。所以碰巧scam应用程序可能会努力从我的程序的配置文件中检索这个密码。

我寻求一种方法来避免它 - 理想情况下,通过命令操作系统只提供我的程序密码,而不是其他人。我想到这一点,似乎是不可能完成的任务。无论我的应用程序可以访问什么,任何其他应用程序也可以访问。

在Android上,有一个安全模型,允许您的应用程序真正只为自己保存数据(除非手机已植根,恶意程序在root权限下运行)。

这是用Java实现的吗?或者在我的程序所针对的Windows上?同样,除了管理员帐户,它可以做任何事情。

编辑:虽然还有另一个关于非常相似主题的问题,但这个问题的答案并没有真正解释任何问题。我希望有特定的Java类名和一个例子。特别是现在,当我在另一个问题的答案中没有使用建议的密钥库时。

1 个答案:

答案 0 :(得分:0)

您可以使用java-keyring库。

// Password can be stored to key store by using Keyring.setPassword method.
// PasswordSaveException is thrown when some error happened while saving password.
// LockException is thrown when keyring backend failed to lock key store file.
        try {
            keyring.setPassword("My service name", "My account name", "My password");
        } catch (LockException ex) {
            Logger.getLogger(Program.class.getName()).log(Level.SEVERE, null, ex);
            return;
        } catch (PasswordSaveException ex) {
            Logger.getLogger(Program.class.getName()).log(Level.SEVERE, null, ex);
            return;
        }

您也可以使用keyring api from Netbeans