PDF加密、解密内幕(二)- PDF文件口令加密内幕

0 几个重要概念

全局加密密钥,简称为全局密钥,该全局密钥由加密字典对象和你输入的口令生成,用来生成对象加密密钥。

对象加密密钥,简称为对象密钥,是用来实际加密PDF文件内容的密钥,不同于上篇PDF加密仿真里的全部的对象共用一个密钥不同,PDF文件中每个对象的加密密钥都不一样。

User Password 用户口令。

Owner password 权限口令。

1 PDF文件的加密流程

上一篇文章大致介绍了关于ACROBATPDF加密操作和加密后生成的PDF文件中的加密字典对象。同时我们提出了下面的四个问题:

1.         文件的内容是如何被加密的?

2.         加密密钥是如何生成的?

3.         加密字典中的每一项是如何生成的?

4.         加密字典和加密密钥的关系?

第一个问题是我们的最终目的,本文要最终要解决的就是这个问题。而第2,3,4个问题作为第1个问题的分解,在下文中有个清晰地解答。

       下面是一个PDF文件加密的大致过程:

1.         选择PDF兼容版本和输入用户口令,权限口令。

2.         根据输入生成加密字典对象。

3.         由输入和加密字典对象生成全局密钥。

4.         由全局密钥生成对象加密密钥。

5.         用对象加密密钥加密对象内容。

2 PDF加密解密流程详解

加密字典对象一般有下面的条目:

/Length 密钥的长度

/Filter 生成密钥的方法,就是前面说的security handler

/O 是由用户口令和权限口令得到的,用来生成密钥和验证输入的权限口令

/P 访问权限的标志

/R 标准加密的(standard security handler)的版本

/U由用户口令生成,用来验证输入的用户口令或权限口令,是否要提醒用户输入密码

/V  可选,用来指明加密的算法。

一般来说这上面的条目是必须的,其它条目具体见PDF规范。这上面的加密字典条目中除了条目OU之外其它的都可以直接生成。那么接下来我们就来看这两个条目,全局加密密钥,和对象加密密钥的生成过程。

如果你去看PDF规范,在有的步骤会有点迷茫的,相信下面的详细介绍对大家会有所帮助,如果你要实现自己的加密程序,也将给你一个指引。

2.1 生成加

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值