ios-加密后无法解密
我无法解密pdf文件并在加密后使用presentViewController显示它们 当我下载pdf文件时,它们被加密如下:ios-加密后无法解密,ios,pdf,encryption,nsdata,presentviewcontroller,Ios,Pdf,Encryption,Nsdata,Presentviewcontroller,我无法解密pdf文件并在加密后使用presentViewController显示它们 当我下载pdf文件时,它们被加密如下: NSData *pdfData = [[NSFileManager defaultManager] contentsAtPath:filePathDocumetFolder]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NS
NSData *pdfData = [[NSFileManager defaultManager] contentsAtPath:filePathDocumetFolder];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents = [paths objectAtIndex:0];
NSString *docFolder = [NSString stringWithFormat:@"/Documents/%@", documentFilePath];
NSString *filePath = [documents stringByAppendingPathComponent:docFolder];
NSString *pdfName = [NSString stringWithString:filename ];
NSError *error;
NSData *encryptedPdf = [RNEncryptor encryptData:pdfData withSettings:kRNCryptorAES256Settings password:@"A_SECRET_PASSWORD" error:&error];
if(error){
NSLog(@"error: %@", error);
}
NSLog(@"where?? FileTra%@", filePath);
[encryptedPdf writeToFile:[filePath stringByAppendingPathComponent:pdfName] atomically:YES];
我知道上面的加密是有效的,因为当我使用iExplorer浏览文件系统时,我无法打开这些文件,因为它们受到保护
在我的DocumentHandle控制器中,我试图解密它们,以便可以查看它们:
NSDictionary* dict = [command.arguments objectAtIndex:0];
NSString* urlStr = dict[@"url"];
NSURL* url = [NSURL URLWithString:urlStr];
NSString* fileName = [url path];
NSString* path = [NSTemporaryDirectory() stringByAppendingPathComponent: fileName];
NSData *dataEn = [[NSFileManager defaultManager] contentsAtPath:[path stringByAppendingPathComponent:fileName]];
NSLog(@"this to decrypt%@", [path stringByAppendingPathComponent:fileName]);
NSData *decryp = [RNDecryptor decryptData:dataEn withSettings:kRNCryptorAES256Settings password:@"A_SECRET_PASSWORD" error:nil];
[decryp writeToURL:[[NSURL alloc] initFileURLWithPath:path] atomically:YES];
if(decryp){
NSLog(@"decrypted");
}else{
NSLog(@" not decrypted");
}
weakSelf.fileUrl = [[NSURL alloc] initFileURLWithPath:path];
出于某种原因,pdf文件没有被解密,我收到的是一个空白文件,尽管我收到的是解密后的NSLog:
有人能帮我吗?谢谢加密不受保护,因此您应该能够查看加密文件。加密文件的文件大小是否可以为零?您已关闭加密期间的错误检查,错误为:nil。你能打开它吗?我已经启用了错误,但没有收到任何错误,而且在加密之后,文件的大小也正确。它们不是零。我建议NSError*error=nil;在那个地方。你能把错误检查也添加到解密中吗?我实现了你的建议,但仍然没有得到任何错误,文档是空白的。您认为解密应该异步进行吗?您确定文件路径相同吗?您可以使用NSTemporaryDirectory,它在加载时为路径添加/tmp,但在保存时不使用它。