ios - 如何使用 Quartz 以 mmap() 方式对加密的 (AES-256) PDF 文件进行 "load"?

标签 ios pdf encryption openssl quartz-graphics

是的,我知道这个问题有点含糊不清......

我在磁盘上有一个 PDF 文件,它是加密的(AES-256,使用 CommonCrypto/OpenSSL)。 我想使用 Quartz 的 CGPDF... 函数呈现 PDF,并发现可以使用 CGDataProvider 创建 CGPDFDocument。

我想知道是否可以为 CGDataProvider 创建回调,以解密和仅加载内存中 Quartz 的 PDF 渲染器需要的 block 。从安全/隐私的角度来看,我宁愿不将解密的文件写入磁盘。

有什么想法吗?

希望我可以根据 stackoverflow 社区的输入开始“开明的”试错:)

最佳答案

如果它足够小,您可以将它保存在 NSData 中 - 即时解密并将其存储在内存中。如果它更大,事情就更困难了。最终,人们还可以解密您的二进制文件并从中提取 AES key 。

PDF 的密码保护可能会增加一个 安全层,但它也很容易绕过。

关于ios - 如何使用 Quartz 以 mmap() 方式对加密的 (AES-256) PDF 文件进行 "load"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5720736/

相关文章:

iphone - 如何在 xcode 的文件模板中创建文件夹?

ios - 无法使具有标识符的单元出队 具有正确定义的标识符的单元

ios - 如何在 plist 中保存持续时间?

php - Adobe Reader 无法从使用 mPDF 生成的 PDF 中检索嵌入字体

javascript - 在 Javascript 上实现 Diffie Hellman key 交换?

php - 用 PHP 实现 ROT13

jquery - 你能在 iPad 上自动播放 HTML5 视频吗?

javascript - 如何合并多个网页并将其转换为 pdf 格式?

iphone - PDF ScrollView 不滚动

encryption - 能够分解大量数字如何决定流行加密算法的安全性?