首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密PDF文档解密时如何在RC4和AES之间进行选择

加密PDF文档解密时如何在RC4和AES之间进行选择
EN

Stack Overflow用户
提问于 2018-12-24 11:55:36
回答 1查看 733关注 0票数 1

我正在编写分析和分析PDF的代码,目前正在处理文档中的加密。我无法从规范中了解如何在两种可能的加密方法之间做出选择。PDF规范中的一些细节..。加密字典的V字段支持以下值:

1=“算法1:使用RC4或AES算法加密数据”,载于7.6.2,“通用加密算法”,加密密钥长度为40位;见下文。 2=(PDF1.4)“算法1:使用RC4或AES算法加密数据”,载于7.6.2“通用加密算法”,但允许加密密钥长度大于40位。

Length字段定义为:

(可选;PDF 1.4;只有V为2或3)加密密钥的长度,以位为单位。数值应为8的倍数,在40至128范围内。默认值: 40。

第7.6.2部分列出了两种可能的加密算法:

在PDF文件中加密数据时,应使用下列算法之一: ·一种称为RC4的专有加密算法。..。 ·AES (高级加密标准)算法(从PDF1.6开始)。..。加密后的数据长度被舍入为块大小的倍数,固定为16字节.

我有一个V= 2,长度= 128的样本文档,它是PDF1.6。我曾假设AES用于PDF1.6中的文档,但是使用AES解密失败(尤其是因为流不是128位长的倍数)。使用RC4解密成功。

我的问题是,在开始处理文档时,我的代码如何知道如何初始化RC4解密?我在加密字典中没有看到任何指定使用哪种方法的内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-25 21:08:23

我认为这里的规范有点混乱。

2=(PDF1.4)“算法1:使用RC4或AES算法加密数据”,载于7.6.2,“一般加密算法,”

是一个引用,用于描述RC4和AES加密的文档中的某个部分,但实际上需要/V 4才能启用RC4加密。

4=(PDF1.5)安全处理程序使用CF、StmF和StrF条目指定的规则在文档中定义加密和解密的使用。

因此,/V 4 (或更高版本)是一个先决条件,从这里您需要进一步查阅/CF /StmF/StrF条目。

使用基本AES加密的加密字典可能如下所示:

代码语言:javascript
复制
/Encrypt <<
  /V 4
  /R 4
  /StmF /StdCF
  /StrF /StdCF
  /CF <<
    /StdCF <<
      /CFM /AESV2
    >>
  >>
  % + other entries /O /U Length etc
>>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53913102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档