【问题标题】:How to protect .plist and other .xml files in my project?如何保护项目中的 .plist 和其他 .xml 文件?
【发布时间】:2014-06-05 00:58:54
【问题描述】:

我的游戏有几个 .plist 和其他 .xml 文件。这些用于配置游戏的行为。

就我而言,任何用户都可以使用 iFunBox 访问文件——即使设备没有越狱,也可以轻松修改其内容。

我想避免这种情况。是否有合理的方法来保护我的项目中的敏感配置文件?

一个有点类似的问题是protecting plist in ipad app,尽管它是关于保护钥匙串中的密码。但是,我的配置文件有好几个,其中一些相当大 - 所以我不确定这是否可行。

【问题讨论】:

  • 你可以加密它,例如AES-256 看起来足够安全,你可以找到很多很好的例子来做这样的事情。

标签: ios iphone ipad


【解决方案1】:

2014 年 6 月 26 日更新

警告: iOS 中有一些使用 NSURL 的类,它们不使用NSURLProtocol,所以我们不能对它们使用这种方式。 (例如:-[NSData dataWithContentsOfURL:],...)


原帖

您可以使用关键字“加密资源xcode”进行搜索。

我认为适合您的解决方案是加密资源

很容易做到,添加新的构建阶段:

DIRNAME=EncryptedResources
ENC_KEY="abcdefghijklmnopqrstuvwxyz123456"

INDIR=$PROJECT_DIR/$DIRNAME
OUTDIR=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/$DIRNAME

if [ ! -d "$OUTDIR" ]; then
  mkdir -p "$OUTDIR"
fi

for file in "$INDIR"/*
do
  echo "Encrypting $file"
  "$PROJECT_DIR/crypt" -e -k $ENC_KEY -i "$file" -o "$OUTDIR/`basename "$file"`"
done

这是一篇关于它的帖子:http://aptogo.co.uk/2010/07/protecting-resources/

查看更多信息:Xcode: hide / protect resource files in final iOS app?

【讨论】:

  • 我已经更新了我的帖子。我发现了一些东西。对不起 :(((
【解决方案2】:

您可以将 .plist 文件转换为 binary plists。这至少会使它们在文本编辑器中不可见。

除此之外,我不知道 Apple 提供的任何编码或保护此类文件的方法。但是,您可以在 .xml 文件(或文本 .plist 文件)中使用某种加密。您可以在构建过程中通过加密算法简单地运行每个字符串(属性或属性)或整个文件,然后在读入时解密。

【讨论】:

  • Xcode 的“复制文件”构建阶段将 plist 文件即时转换为二进制文件,因此无需手动转换它们。唉,二进制 plist 没有提供任何保护。
  • 二进制plist可以在你只存储的时候为你节省一些资源。
猜你喜欢
  • 1970-01-01
  • 2010-11-30
  • 2012-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
相关资源
最近更新 更多