可以混淆/加密SharedPreferences文件吗?

时间:2011-04-29 04:41:50

标签: android encryption obfuscation sharedpreferences

所以,我有兴趣混淆我的应用程序的SharedPreferences xml文件,就像Android LVL那样混淆了它的许可证数据。这可以想象吗?大量的谷歌搜索产生的结果很少,可能会解决我的问题。我当然不是密码学家。

其他形式的加密怎么样?我的最终目标不是尝试使xml防弹,我只是想阻止90%以下的人如果不是纯文本的话就不要搞乱它。

5 个答案:

答案 0 :(得分:3)

不要相信这是可能的,不是没有重大修改(可能编写自己的首选项实现),我甚至无法开始考虑如何说服Android从您的首选项实现加载。

默认的SharedPreferences实现是不可替换的,据我所知:如果你需要对LVL做什么进行加密,要么加密你写入SharedPreferences XML的值,要么创建你自己的完全加密文件并管理它在你自己的磁盘上。

答案 1 :(得分:3)

如何模糊存储在首选项-XML中的键和值?

我为共享首选项创建了一个包装器,用于加密键和值:https://github.com/sveinungkb/encrypted-userprefs

答案 2 :(得分:2)

您是否可以使用某种方案更改某些操作员的数据,以使其对大多数人来说难以理解?我可以建议一种方式。首先,使用固定大小的字符串,以便在保存数据时不会改变长度。接下来,您可以应用一些简单的函数来调整字节并偏移每个字节。所以最终的结果仍然是一个字符串,但它会使正常的人很难弄清楚它是什么,虽然一个人坚持破解它可以成功。

答案 3 :(得分:2)

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

答案 4 :(得分:0)

你可以做的是..用你自己的方法包装sharedpreferences ..并避免使用你的方法名称,如“加密”“解密”“字符串”等..因为proguard不会混淆单词..

这里举个例子 https://github.com/afiqiqmal/ConcealSharedPreference-Android