PDF文件加密仿真
前言:
通过上一篇文章的阅读,想必大家对基本的PDF文件的格式有所了解。其实对PDF具体格式的学习,不光可以帮助我们理解这种格式本身,同时你也会受到它的启发定义一种自己的文件格式,比如说一种简单的类似PDF格式,来满足你对某些项目的需求。
本文就是先仿照PDF(也有借鉴XML加密方式)自定义一种非常简单的文件格式来说明PDF文件的加密方式和过程。
1 几个基本概念
我们学习和讨论PDF文件的加密原理和过程不需要讨论具体的加密算法实现本身,因为所有流行的加密算法早就有所实现,我们需要做的就是直接加以利用。何况介绍和讨论加密算法篇幅巨大,也不应该包含在这短文之中。但是我想下面的几个概念大家都应该明白:
(下面所有内容包括图例都不是严格的定义,基本上是我本人的理解,如果要知道确切的定义请自己查询相关网站。)
1.1 对称加密方法
对称加密方法指的是加密和解密使用同一密钥的方法。PDF文件内容的加密采用RC4和AES的方法。(关于RC4算法和AES算法请自己搜索相关网站)
例如下面是对称加密的两种简单实现:
图 1
1.2 非对称加密方法
非对称加密有一对密钥(KEY1, KEY2),加解密需要用不同的密钥,加密的密钥用KEY1,那么解密的密钥就用KEY2;如果加密的密钥用KEY2,那么解密的密钥就用KEY1。但是一般的使用上来说,这一对密钥中一个称为公钥,作为公开密钥,另外一个称为私有密钥,用来解密。
图 2
1.3 散列(hash)
流行的算法有MD5和SHA1