【问题标题】:Obfuscate/Encrypt SharedPreferences file possible?可以混淆/加密 SharedPreferences 文件吗?
【发布时间】:2011-04-29 04:41:49
【问题描述】:

所以,我有兴趣混淆我的应用程序的 SharedPreferences xml 文件,就像 Android LVL 混淆它的许可证 cahce 数据一样。这可以想象吗?大量的谷歌挖掘几乎没有产生可能解决我的问题的结果。而且我当然不是密码学家。

其他形式的加密呢?我的最终目标不是尝试使 xml 防弹,我只是想阻止 90% 的人,如果它不是纯文本的话,他们会避免乱搞它。

【问题讨论】:

标签: android encryption obfuscation sharedpreferences


【解决方案1】:

不要相信这是可能的,除非进行重大修改(可能编写您自己的 Preferences 实现),而且我什至无法开始考虑如何说服 Android 从您的 Preferences 实现中加载。

据我所知,默认的 SharedPreferences 实现是不可替代的:如果您需要加密某些东西,请执行 LVL 所做的操作,或者加密您写入 SharedPreferences XML 的值,或者创建您自己的完全加密的文件并管理它自己在磁盘上。

【讨论】:

  • 我担心这就是我会得到的答案,但非常感谢你,至少现在我已经弄清楚了。
【解决方案2】:

如何混淆存储在偏好 XML 中的键和值?

我为加密密钥和值的共享首选项制作了一个包装器:https://github.com/sveinungkb/encrypted-userprefs

【讨论】:

    【解决方案3】:

    你能不能使用一个方案以某种方式改变数据,使大多数人无法理解?我可以建议一种方法。首先,使用固定大小的字符串,这样它就不会随着正在保存的数据而改变长度。接下来,您可以应用一些简单的函数来调整字节并偏移每个字节。所以最终结果仍然是一个字符串,但它会让普通人很难弄清楚它是什么,尽管一个人一心想破解它可以成功。

    【讨论】:

      【解决方案4】:

      我使用 AES 加密创建了 SharedPreferences 实现。 该项目是一个Maven模块。 如果你需要一个,看看。 https://github.com/kovmarci86/android-secure-preferences

      【讨论】:

        【解决方案5】:

        您可以做的是.. 用您自己的方法包装共享首选项.. 并避免使用您的方法名称,例如“加密”“解密”“字符串”等。因为 proguard 不会混淆这个词..

        例如这里 https://github.com/afiqiqmal/ConcealSharedPreference-Android

        【讨论】:

          猜你喜欢
          • 2015-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-21
          • 1970-01-01
          • 2021-10-13
          • 1970-01-01
          相关资源
          最近更新 更多