ios-加密后无法解密

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

我无法解密pdf文件并在加密后使用presentViewController显示它们

当我下载pdf文件时,它们被加密如下:

 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,但在保存时不使用它。