android - 安全保存 RSA 公钥/私钥

标签 android rsa private-key

我创建并使用 RSA 公钥/私钥来加密/解密一些消息。我将它们作为字符串存储到共享首选项中,当我需要它们时,我从字符串创建。一切都很完美,但是将我的私钥作为字符串存储在 sharedpreferences 中是否安全? 带着这个问题:

SharedPreferences MODE_PRIVATE security

我了解到,有人可以访问我的共享首选项并可以从字符串生成我的私钥。在将我的私钥保存在我的手机上时,我该怎么做才能保证私钥的安全?

最佳答案

这完全取决于私钥/公钥对的敏感程度。我认为,将它们存储在 sharedpreferences 中是个不错的主意。您的 key 对存储在与应用程序目录相关的位置,并且具有系统保护以防止外部访问。但是,正如“共享”首选项所暗示的那样,您的 key 对在您的应用程序组件之间共享。因此,如果您需要更好的保护,请考虑将 key 对存储在 KeyStore class 中。反而 。到目前为止,它是 key 对保护的最佳解决方案。它为您提供基于密码的 key 保护。

更新:有一篇关于 android keystore 和 keychain usage 的很棒的文章 here .

关于android - 安全保存 RSA 公钥/私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165932/

相关文章:

android - 如何在 Android 中从视频 URL 捕获/录制剪辑并保存到手机

android - ASN.1 编码例程 :OPENSSL_internal:HEADER_TOO_LONG

java - 如何用Java生成pem格式的私钥?

java - 使用使用 java.beans 类(Introspector、BeanInfo 或 PropertyDescriptor)的 jar

android - 优化 Android 中的组合渲染和 Canvas 绘制

java - 在 TextClock 中设置时间

perl - 通过 Perl 进行 SSH 登录

python - 使用 RSA 在 Python 中逐行加密文件并将其与另一个文件进行比较

java - 如何从作为 ByteString 接收的 key 创建 java.security.publicKey - OAEP Padding

java - 将字符串转换为 key 以进行加密