我尝试使用KeyStore来保存一些秘密。但是从Android设备中删除了应用程序之后,密钥对也从设备中删除了。
有没有什么方法可以保存密钥对已删除应用程序。我仍然需要密钥对的原因是:如果用户重新安装应用程序,密钥对仍然存在并保持不变。
答案 0 :(得分:0)
当您需要系统范围的凭据时,可以在Android KeyChain中存储凭据。即使您卸载了应用程序,您的密钥仍将保留在KeyChain中。请参阅KeyChain和Choosing Between a Keychain or the Android Keystore Provider
KeyChain
类提供对凭证存储中私钥及其相应证书链的访问。...
应用程序可以通过
createInstallIntent()
提供的Intent请求安装私钥和证书。通过此Intent安装的私钥可通过choosePrivateKeyAlias(Activity, KeyChainAliasCallback, String[], Principal[], Uri, String)
访问,而所有应用程序将通过默认X509TrustManager
信任证书颁发机构(CA)证书。
另一种方法是将密钥对存储在本地文件中,并使用用户请求的密码对其进行加密。
您也可以在服务器上以这种方式存储它,但始终是加密的,这样服务器就无法访问用户的密钥