java - 如何在桌面客户端应用程序(Java)中存储密码和敏感数据?

标签 java security twitter-oauth password-protection email

我想制作一个应用程序来监视用户的电子邮件帐户的传入电子邮件以及他的推特帐户的推文。因此,用户必须提供他的登录凭据。我的疑问是如何以及在哪里存储这些敏感数据?我不希望我的应用程序烦扰反复询问这些事情的用户。

此外,如果我应该加密然后存储这些数据,那么我应该如何保护我在应用程序中使用的 key ?

最佳答案

加密的要点是使明文的保密性取决于较小 key 的保密性。

在这种情况下,单独加密对您没有用,因为您也没有办法存储 key 。

相反,您需要使用一些由第三方管理的现有 secret (使用密码),并使用它来派生 key 。

在 Windows 上,您可以使用 DPAPI,它最终由用户的登录密码支持。
如果用户忘记了密码(或者密码是从其他帐户更改的),您的数据将无法恢复。

请注意,这不会阻止以该用户身份运行的代码。
您需要决定要防御什么。

关于java - 如何在桌面客户端应用程序(Java)中存储密码和敏感数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780184/

相关文章:

security - CSRF token 的生存期应达到多长时间?

Java 8 javax.net.ssl.SSLPeerUnverifiedException : peer not authenticated, 但不是 Java 7

java - 在 Rails 应用程序中实现 Java 门面/服务概念的最佳方式

Java通过反射获取参数值

iphone - 如何在iPhone上实现twitter登录功能

r - 如何在 R 中发送推文?

python - urllib.request.Request 说参数无效

java - 按行对矩阵进行排序并保留索引

java - 除了购买证书,Java 开发人员还有哪些选择?

java - 关于 jvm-wide 属性和多线程的问题