【问题标题】:How to encrypt/decrypt using the Android KeyStore with keeping compatibility?如何在保持兼容性的情况下使用 Android KeyStore 进行加密/解密?
【发布时间】:2020-02-25 08:08:09
【问题描述】:

我正在开发一个 Android 应用程序。

出于安全考虑,我应该加密/解密私人数据。

到目前为止,我只是将它们作为纯文本存储到 SharedPreference 中。

因为网上有很多示例代码,所以应用Android KeyStore并不难。

现在我有了“加密”、“解密”方法。

问题是……

许多用户的数据已经作为纯文本存储到 SharedPreference 中。

因为我的应用会尝试解密纯文本,如果我更新这个应用,他们将面临迷恋或错误行为。

那么……

如何保持兼容性?

实际上,当我更新我的应用程序时,我遇到了 IllegalBlockSizeException。

所以我认为,如果我在“解密”方法上捕获 IllegalBlockSizeException 并仅返回纯文本,我的应用程序将正常工作。

但不知道对不对……

请给我一些建议好吗?

【问题讨论】:

    标签: android encryption keystore


    【解决方案1】:
    1. 您增加了新版本的版本,对吗?为什么不在您的代码中添加if else 逻辑,以根据您的应用版本决定是否加密/解密?
    2. 您可以创建新的storage path/SharedPreference name 并实现您的加密/解密逻辑。然后您的旧 SharedPreference 数据将被忽略。不知道您的业务逻辑的风险。

    【讨论】:

    • 是的,#2 看起来更好!谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    相关资源
    最近更新 更多