我正在开发一个android消息应用程序。当用户注册rsa私钥和公钥时,并且这些密钥和aes消息被加密和解密。如何存储RSA私钥,公钥
私钥存储在服务器的手机和公钥中。如果用户重置或卸载应用程序,则所有密钥都将丢失,因此无法解密旧消息。
如何在用户卸载应用程序时检索旧私钥而不将其存储在服务器中?
我正在开发一个android消息应用程序。当用户注册rsa私钥和公钥时,并且这些密钥和aes消息被加密和解密。如何存储RSA私钥,公钥
私钥存储在服务器的手机和公钥中。如果用户重置或卸载应用程序,则所有密钥都将丢失,因此无法解密旧消息。
如何在用户卸载应用程序时检索旧私钥而不将其存储在服务器中?
有多种方式可以在Android中保存数据。数据库,SavedInstanceState,SharePreferences和文件。用户卸载应用程序后,只有文件仍然存在。将其保存在文件中是您拥有的唯一选项。
您是使用Android Keystore存储密钥还是使用自己的文件存储?
的Android密钥库
借助Android密钥库是没有办法恢复键,因为它们只能通过创建它们,如果有实质性的变化被丢弃的应用中使用。
我猜你正在使用RSA密钥协商AES对称加密密钥。因此,你将需要备份的AES加密密钥(例如在服务器...),以及stablish一个机制来恢复,如常见的“记住密码”事业的关键
自定义密钥存储
如果您将密钥存储在没有AndroidKeystore的设备中,则可以定义自己的机制来还原密钥。例如,使用密码加密密钥并将密钥存储到设备的公用目录中。然后密钥可以恢复提示用户输入密码
注意事项:考虑到每种情况下的安全风险。例如,一个非加密的AES密钥进入服务器意味着恶意服务器可以解密消息。或弱恢复密钥机制将降低系统的整体安全级别
现在它已存储在数据库中,并且sharedprefernce.does密钥库在卸载应用程序后保留数据。 – cyborg