tex*_*ian 3 pdf encryption xcode objective-c ios
我正在使用使用受版权保护的pdf文件的ios应用程序.我正在寻找一些简单的方法来混淆文件的安全性,这不需要我通过额外的大众市场CCATS加密审查过程,但也将确保版权所有者我已经尽我所能保持他们的数据安全.我当然用密码保护文件,但我想进一步提高一两步.是否有一个简单的方法来XOR或以其他方式散列或混淆我将在我的服务器上托管的pdf文件,然后让ios设备下载它并使用objective-c代码将其恢复为常规密码保护的pdf文件,以便它可以节省它在文档目录中(我不担心它在设备上的安全性,就像它坐在服务器上一样).我假设对于任何文件类型都是一样的.
因此,为了澄清我正在我的桌面上寻找一个简单的XOR或Hash混淆/加密方法,它具有相应的目标c代码,ios设备可以在下载后快速解码我的文件并将其保存到文档目录.
非常感谢!
以下是关于CCATS限制的答案... 如果使用简单的XOR密码,需要申请CCATS吗?
但是你要下载文件,你可能最终会得到一个NSData?如果是这样,无论你在哪里都有这样的东西:
[myData writeToFile:...]
Run Code Online (Sandbox Code Playgroud)
只需突破所有字节并应用您的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
Run Code Online (Sandbox Code Playgroud)
这表明应用更长模式的最简单方法:
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];
Run Code Online (Sandbox Code Playgroud)
以32位步进进行速度稍微快一点,但是保存到磁盘可能是唯一具有任何重大成本的东西,而且至少非常清楚.