我目前正在iOS设备上保存一个PDF文件。我不希望人们能够进入和读取内容,所以我需要能够加密的文件在写入和解密时,再次加载回来。
我目前正在像这样保存文件。我正在从服务中得到一个包含pdf内容和密码的UIDocumentInteractionController字符串,我所做的是转换为NSData并保存到NSDocumentDirectory,我使用该文件路径打开NSData,同时打开pdf,我在UIDocumentInteractionController中得到一个密码提示,并按预期工作:
NSData *pdf = [[NSData alloc]initWithBase64EncodedString:baseText options:0];
NSString *documnet = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
NSString *filebaseURL = [[NSString alloc]initWithString:[documnet stringByAppendingPathComponent:@"samplemade.pdf"]];
[pdf writeToFile: filebaseURL atomically:YES];为了获得额外的安全性,我想要的是在存储在中的NSDocumentDirectory时加密PDF,然后在UIDocumentInteraction控制器中显示它时解密它。怎么做?
我从这个链接FileProtection中得到了一个使用File Protection选项的建议,但这只能在设备被锁定时进行保护。相反,我想以加密的格式存储这个PDF,在我的应用程序中显示这个PDF时,我应该解密它。我正在使用UIDocumentInteractionController。知道怎么做吗?我想要的是在存储在NSDocumentDirectory中时加密PDF,然后当我想在UIDocumentInteraction控制器中显示它时解密它。
发布于 2021-07-16 07:41:42
在我的实践中,不能使用writeToFile方法生成pdf。如果您需要生成一个pdf,您需要用Core 编写它,您可以在创建密码时设置密码,并使用UIDocumentInteractionController读取simple.pdf方法interactionControllerWithURL:不需要密码,如果需要使用密码,则需要使用PDFDocument打开或其他方法
https://stackoverflow.com/questions/68403441
复制相似问题