在 Cocoa / Objective C 中保护 xml plist
Posted
技术标签:
【中文标题】在 Cocoa / Objective C 中保护 xml plist【英文标题】:Securing xml plists in Cocoa / Objective C 【发布时间】:2010-11-30 17:14:50 【问题描述】:我正在编写一个应用程序,它在启动时从捆绑包中的 am xml plist 中读取信息。 plist 中的信息是经过多日的工作整理而成的,我想确保它在分发后不会被另一方轻易地从 app bundle 中提取出来。有什么方法可以保护或加密包含在您的应用程序包中的 xml plist?
任何帮助将不胜感激。
【问题讨论】:
这是一个小细节,但如果您嵌入的 plist 不适合人类消费,请使用更有效的二进制 plist 格式。您可以使用 plutil -convert binary1 file.plist 进行转换。 【参考方案1】:plist 中没有内置加密功能。许多人将压缩视为加密。
这就是我要做的,
-
制作一个加密密钥。
编写一个小程序,使用
SecKeyEncrypt()
将plist加密成二进制文件。
将二进制文件放入包中。
在应用程序中,将密钥隐藏在某处。例如,将它们分段存储,这样就不容易从垃圾场中找到。
当您启动应用程序时,从 bundle 中读取二进制文件,使用SecKeyDecrypt()
使用密钥对其进行解密并将明文存储在内存中。
明文是 plist 并从内存中加载 plist。
这仍然被认为是令人困惑的,因为您的捆绑包中提供了密钥,但它足以阻止大多数临时黑客。
【讨论】:
谢谢,这很有帮助。 至于加密部分,请查看这个 SO 问题以获取想法:***.com/questions/1417893/… @ZZ Coder 你有任何示例来证明这一点吗?以上是关于在 Cocoa / Objective C 中保护 xml plist的主要内容,如果未能解决你的问题,请参考以下文章
Objective C - 创建 PDF (Mac OSX / Cocoa)
如何使用Cocoa启动URL(Objective C)-macosx.com