XOR或其他简单文件混淆方法ios的目标c

我正在使用受版权保护的PDF文件的ios应用程序。 我正在寻找一些简单的方法来混淆文件的安全性,不需要我通过额外的大众市场CCATSencryption审查过程,但也将确保版权持有人,我已经做了我的一切,以保持他们的数据safa。 当然,我的密码保护文件,但我想进一步把它一两步。 是否有一个简单的方法来XOR或以其他方式散列或混淆我将在我的服务器上托pipe的PDF文件,然后让ios设备下载它并使用objective-c代码将其恢复到正规的受密码保护的pdf文件,以便它可以保存它在文档目录中(我不担心它在设备上的安全性,就像它坐在服务器上一样)。 我认为这将是任何文件types相同。

所以澄清,我正在寻找一个简单的XOR或哈希混淆/encryption方法在我的桌面上有相应的目标c代码ios设备可以用来快速解码我的文件下载后,并将其保存到文件目录。

非常感谢!

这里是一个关于CCATS限制的答案,供参考… 如果使用简单的XOR密码,是否需要申请CCATS?

然而,你正在下载文件,你可能会结束与NSData ? 如果是这样,无论你在哪里可能有这样的事情:

 [myData writeToFile:...] 

只需冲破所有的字节并应用您的XOR。 假设它是一个密集的8位模式,那只是:

 /* assuming myData is mutable... take [data mutableCopy] if required */ uint8_t *bytes = (uint8_t *)[myData mutableBytes]; for(int index = 0; index < [myData length]; index++) bytes[index] ^= 0xe8; // or whatever your mask is 

这表明应用更长的模式的最微不足道的方式:

 uint8_t *bytes = (uint8_t *)[myData mutableBytes]; uint8_t pattern[] = {0xe8, 0xf4, 0x98, 0x32, 0x63}; // or whatever const int patternLengthInBytes = 5; for(int index = 0; index < [myData length]; index++) bytes[index] ^= pattern[index % patternLengthInBytes]; 

以32位的步骤进行会稍微快一点,但是保存到磁盘可能是唯一的成本,而且至less非常清楚。