Kyl*_*yle 16 iphone encryption cryptography ios
我知道AES如何加密和解密NSData,但这需要先将整个文件加载到内存中.
假设我有一个50mb的加密文件data.dat.enc,如何将其解密为文件data.dat而无需先将其全部加载到内存中?
Rob*_*ier 15
编辑:此代码已由http://github.com/rnapier/RNCryptor扩展.
RNCryptManager是如何执行此操作的一个很好的示例.它来自iOS5的第11章示例代码:PTL.看着:
+ (BOOL)decryptFromStream:(NSInputStream *)fromStream
toStream:(NSOutputStream *)toStream
password:(NSString *)password
error:(NSError **)error;
Run Code Online (Sandbox Code Playgroud)
它假设盐和IV已经被添加到流中(这在书中都有解释).有关AES加密的更一般性讨论,请参阅使用CommonCrypto使用AES正确加密.
有关其用法的示例,请参阅同一项目中的CPCryptController.m.
如果有足够的兴趣,我可以将这个对象拉出来并支持它作为一个独立的项目,而不仅仅是一段示例代码.它似乎对人们有用.但按原样集成并不困难.
更一般的答案是您创建一个加密器,CCCryptorCreate然后CCCryptorUpdate对每个块进行调用.然后你打电话CCCryptorFinal来完成任务.
| 归档时间: |
|
| 查看次数: |
7576 次 |
| 最近记录: |