我创建并使用 RSA 公钥/私钥来加密/解密一些消息。我将它们作为字符串存储到 sharedpreferences 中,当我需要它们时,我从字符串创建。一切都很完美,但是将我的私钥作为字符串存储在 sharedpreferences 中是否安全。带着这个问题:
SharedPreferences MODE_PRIVATE 安全性
我了解到,有人可以访问我的共享首选项,并可以从字符串生成我的私钥。我可以做些什么来确保我的私钥安全,同时将它保存在我的手机上?
我创建并使用 RSA 公钥/私钥来加密/解密一些消息。我将它们作为字符串存储到 sharedpreferences 中,当我需要它们时,我从字符串创建。一切都很完美,但是将我的私钥作为字符串存储在 sharedpreferences 中是否安全。带着这个问题:
SharedPreferences MODE_PRIVATE 安全性
我了解到,有人可以访问我的共享首选项,并可以从字符串生成我的私钥。我可以做些什么来确保我的私钥安全,同时将它保存在我的手机上?
这完全取决于私钥/公钥对的敏感程度。我认为,将它们存储在 sharedpreferences 中并不是一个坏主意。您的密钥对相对于应用程序目录存储,并具有系统保护,可防止外部访问。但是,正如“共享”首选项所暗示的那样,您的密钥对在您的应用程序组件之间共享。因此,如果您需要更好的保护,请考虑将密钥对存储在KeyStore 类中。到目前为止,它是密钥对保护的最佳解决方案。它为您提供基于密码的密钥保护。
更新:这里有一篇关于 android keystore 和 keychain usage 的好文章。