【发布时间】:2011-12-01 21:52:49
【问题描述】:
我想知道它是否会工作...在我的应用程序中,我有一个要序列化到文件的对象,然后我用ProGuard 混淆代码,然后应用程序进入市场。然后我想发布新版本的应用程序。我也一样。用户通过应用程序更新运行。
问题是 - 使用第一个版本的应用程序序列化的对象是否在第二个版本中正确反序列化?如果是 - 为什么?
【问题讨论】:
-
你真的需要序列化吗?这不是您可以使用数据库或自定义文件格式处理的吗?
-
@jcm,我真正需要的是保护这些数据免遭未经授权的阅读。如果你告诉我用户无权查看数据库——我什至害怕用户会使用 root 权限来获取/分析/修改该数据。所以我用加密序列化它。但正如你所说,也许自己的文件格式会更好。
-
如果你想要安全的数据,而不仅仅是它的结构,你需要加密。 (当然我不确定是否有办法在 Android 上安全地存储加密密钥,但它应该足以阻止随意攻击。)
-
@Inerdia 是的,我需要混淆和加密。不幸的是,模型可能会因版本而异,保留数据非常重要,所以我最终得到了 jcm 建议并制作了自己的文件格式。
-
而这个问题的答案是,如果您不对这些类和包名进行手动映射,它很可能无法正确反序列化。
标签: android serialization obfuscation proguard