我正在开发Android应用程序。
出于安全考虑,我应该加密/解密私人数据。
直到现在,我只是将它们作为纯文本存储到SharedPreference中。
因为网络上有许多示例代码,所以应用Android KeyStore并不困难。
现在我有了“加密”,“解密”方法。
问题是...
许多用户的数据已经作为纯文本存储在SharedPreference中。
因为我的应用程序将尝试解密纯文本,如果我更新此应用程序,它们将面临崩溃或错误行为。
然后...
如何保持兼容性?
实际上,当我更新应用程序时,我遇到了IllegalBlockSizeException。
所以我认为,如果在“ decrypt”方法上捕获到IllegalBlockSizeException并仅返回纯文本,则我的应用程序将正常运行。
但是我不知道这是对的还是不正确的...
您能告诉我建议吗?
if else
逻辑来决定是否通过您的应用版本进行加密/解密?storage path/SharedPreference name
并实现您的加密/解密逻辑。然后,您的旧SharedPreference数据将被忽略。不了解您的业务逻辑风险。