0

我需要在我的项目中存储大量不同类型的机密数据。数据可以表示为编码的 NSStrings。我更喜欢在代码中初始化它而不是从文件中读取,因为这样更安全。

所以我需要大约 100k 行,如下所示:

[myData addObject: @"String"];

或者像这样

myData[n++] = @"String";

将这些行放入 Xcode 会导致编译时间大幅增加长达几个小时(顺便说一下,在 Eclipse 中编译 100k 行这样的代码只需要几分之一秒)

什么是可行的安全替代方案?

(请不要建议从文件中读取,因为这会使数据更容易破解)

4

2 回答 2

3

代码中的字符串可以很容易地用strings.

无论如何,如果您想将数据文件直接合并到可执行文件中,您可以使用-sectcreate链接器选项来实现。-Wl,-sectcreate,MYSEG,MYSECT,path在其他链接器命令构建设置中添加类似的内容。在您的代码中,您可以使用getsectdata()来访问该数据部分。

但是,您不得将实际交付给最终用户的任何数据(无论是在代码文件中还是在资源文件中)视为“机密”。它不是,也永远不可能。

于 2013-02-10T18:42:26.440 回答
1

我会将字符串放在 plist 文件中,然后NSArray在运行时将其读入。为安全起见,对文件进行加密。

于 2013-02-10T13:20:08.013 回答