使用Apple Dev库(https://developer.apple.com/library/prerelease/ios/samplecode/CryptoExercise/Listings/Classes_SecKeyWrapper_m.html)中的示例,特别是这种方法- (NSData *)doCipher:(NSData *)plainText key:(NSData *)symmetricKey context:(CCOperation)encryptOrDecrypt padding:(CCOptions *)pkcs7 { return nil; }
我可以通过读取文件到NSData然后传递给这个方法来解密和加密文件。
然而,这有一个不幸的后果,我不得不使用大量的内存为这个过程。
是否有任何方法可以解密磁盘上的文件,而无需将文件加载到NSData?
您可以使用单独的Common Crypto例程:CCCrytorCreate()
, CCCryptorUpdate()
, CCCryptorFinal()
和CCCryptorRelease()
为每个块重复CCCryptorUpdate()
。
参见Mike Ash's Friday on A Tour of CommonCrypto。