我想制作一个应用程序来监视用户的电子邮件帐户的传入电子邮件以及他的推特帐户的推文。因此,用户必须提供他的登录凭据。我的疑问是如何以及在哪里存储这些敏感数据?我不希望我的应用程序烦扰反复询问这些事情的用户。
此外,如果我应该加密然后存储这些数据,那么我应该如何保护我在应用程序中使用的 key ?
最佳答案
加密的要点是使明文的保密性取决于较小 key 的保密性。
在这种情况下,单独加密对您没有用,因为您也没有办法存储 key 。
相反,您需要使用一些由第三方管理的现有 secret (使用密码),并使用它来派生 key 。
在 Windows 上,您可以使用 DPAPI,它最终由用户的登录密码支持。
如果用户忘记了密码(或者密码是从其他帐户更改的),您的数据将无法恢复。
请注意,这不会阻止以该用户身份运行的代码。
您需要决定要防御什么。
关于java - 如何在桌面客户端应用程序(Java)中存储密码和敏感数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780184/