文档加密全解 — 哈希、电子签名与时间戳(各自证明什么)
其他语言版本:РусскийBahasa Indonesiaहिन्दीFrançaisEspañolEnglishPortuguêsবাংলাالعربية
"这份文档有法律效力吗?"——凡是与 PDF 打交道的办公室,每周都会冒出这个问题。而正确的答案,取决于是否理解三种经常被混为一谈的密码学机制:哈希、电子签名和时间戳。
它们各自证明的东西不同。用错了机制——或者以为一种可以替代另一种——这类疏忽只有在文档被质疑时才会暴露。本指南不讲术语黑话,把三者讲清楚:各自证明什么(不证明什么),以及那些在不知不觉中让电子签名失效的实际操作错误。
一份电子文档必须回答的三个问题
当文档成为证据——在谈判、审计、诉讼中——对它的质疑永远是三个问题的变体:
- 完整性 — 这个文件是否原封未动、没有任何改动?
- 作者身份 — 是谁制作或认可了这份内容?
- 在先性 — 这份内容在某个日期之前是否已经存在?
现代密码学为每个问题都准备了一件工具。我们逐一来看。
工具一 — 哈希:完整性的证明
SHA-256 哈希值是文件的数学"指纹":根据内容计算出的 64 个字符的序列。文档的任何改动——哪怕一个逗号——都会产生完全不同的哈希值。我们已发布了关于 SHA-256 哈希与完整性验证的完整指南;要点如下:
- 证明:内容与记录哈希值时逐比特完全一致;
- 不证明:文件是谁创建的、何时创建的;
- 成本:零——您可以在浏览器中计算任何文件的哈希值,几秒钟搞定,文档无需发送到任何地方。
哈希是另外两种机制的基石:电子签名和时间戳的内部原理,都是对文档的哈希值进行签名或盖时间章。
工具二 — 电子签名:作者身份的证明
这里登场的是非对称密码学(公钥密码学),这个思想值得理解,因为它非常优雅:
每个人持有一对数学上互相关联的密钥:一把只有本人掌握的私钥,和一把任何人都可以知道的公钥。一把钥匙加密的内容,只有另一把能解开。
电子签名对此的运用十分巧妙:
- 软件计算文档的哈希值;
- 用签名人的私钥加密这个哈希值——这就是签名;
- 收到文档的人用签名人的公钥解开签名,与重新计算出的文件哈希值进行比对。
如果一致,两件事同时得到证明:文档自签名以来未被改动(完整性),且签名只可能出自私钥持有人之手(作者身份)。
还缺一环:怎么知道那把公钥真的属于那个人?这就是数字证书的作用——由认证机构(CA)签发的电子文件,将公钥与持有人的身份绑定。法律框架因国而异:在中国,《电子签名法》规定可靠的电子签名与手写签名或盖章具有同等法律效力,由依法设立的电子认证服务机构签发证书;欧盟有 eIDAS 条例下的合格电子签名;许多国家都有类似的国家级体系。底层的密码学原理全球相同。
- 证明:作者身份/认可 + 自签名时刻起的完整性;
- 不证明:内容在签名之前已存在,也不能独立证明日期(签名人电脑上的时钟不是有力证据);
- 成本:合格证书通常收费;部分国家也提供免费或低成本的政府背书签名方案。
工具三 — 可信时间戳:在先性的证明
可信时间戳回答前两者无法回答的问题:"这份文档在这个日期是否已经存在?"
工作原理如下:文档的哈希值被发送给一家时间戳服务机构(TSA)——一个拥有经审计的可信时钟、遵循 RFC 3161 标准的服务——它将哈希值与官方日期时间一起签名返回。请注意这个对隐私至关重要的细节:只有哈希值被传输,文档本身从不外发。时间戳机构在从未见过内容的情况下为指纹盖章。
- 证明:这份确切的内容最晚在那个日期和时间已经存在;
- 不证明:作者身份;
- 成本:通常是付费服务,全球各地都有时间戳机构提供。
实用速查:什么需求用什么工具
- "我要证明文件没有变过" → SHA-256 哈希。尽早记录在难以抵赖的地方(发给对方的邮件、共享的报告),之后在完整性验证器中核对。
- "我要证明某人认可了这份内容" → 电子签名(在您所在司法辖区合格或受法律认可的)。
- "我要证明这份内容在某个日期之前已存在" → 可信时间戳。
- "我全都要" → 三者可以叠加:一份带时间戳的电子签名合同,同时具备作者、完整性和日期。
让电子签名失效的操作(几乎没人注意到)
以下是本文对日常办公最有价值的警告:
对已电子签名的 PDF 做任何改动,签名都会失效。 回想它的原理:签名就是加密后的文档哈希值。文档一变,哈希值就变,签名便无法通过验证。这意味着,对一份已签名的 PDF:
- 与其他 PDF 合并 — 签名失效;
- 拆分成多个部分 — 签名失效;
- 压缩以减小体积 — 签名失效;
- 删除或提取页面 — 签名失效;
- 甚至某些 PDF 阅读器里的"另存为"也可能重写文件,使验证失效。
黄金法则:所有操作都在签名之前完成。先组装好最终文档——合并附件、把图片转成 PDF、压缩、排好页面——然后再收集电子签名。事后需要改动,就必须重新签署。
推论:如果您收到一份已签名的 PDF,需要更小或部分的版本来工作,请原封不动地保存原件(在验证器中记录它的哈希值),只对工作副本进行操作。
保密性加密:PDF 密码
在完整性、作者和日期之外,还有第四种需求——保密性——由对称加密满足:用密码加密 PDF(AES-256 标准),只有掌握密码的人才能打开内容。
两点实用提醒:
- 密码保护的是机密,不是完整性也不是作者身份——设了密码的文件仍可能被替换成另一个使用相同密码的文件;
- 保护强度就是密码强度。AES-256 里的"1234"仍然只是"1234"。
对于含个人信息的文档,保密还有法律分量:中国《个人信息保护法》及世界各地类似法律都将数据保护视为义务,而非情面。最强的保密机制是架构层面的:文档从一开始就不离开您的电脑。
RoseLab 如何应用这些理念
RoseLab 建立在本文讨论的两条密码学原则之上:
- 100% 本地处理:比较两个 PDF、合并、拆分、压缩和验证哈希全部在您的浏览器内完成。任何文档都不会上传到服务器——保密靠架构,不靠承诺;
- 可验证性:比较报告会打印两个被比较版本的 SHA-256 哈希值,任何人都可以在公开验证器中独立复算这些哈希值。您不需要信任任何人:数学自己会说话。
实践中,一个可靠的审阅流程是这样的:收到文档的两个版本 → 记录哈希值 → 用自动差异高亮进行比较 → 生成印有哈希值的报告 → 将报告与原件一起归档。质疑这次审阅的人可以独自把整个过程重做一遍——完整方法见文档比较的完整流程。
常见问题
没有签名的电子文档有效力吗? 在大多数司法体系中,多数民事行为的效力并不依赖特定形式——电子邮件、PDF 甚至聊天记录都可以作为证据,综合认定。电子签名和时间戳能强化证据;缺少它们并不自动导致无效。特定行为可能被法律要求使用合格签名——请核实适用于您的规定。
扫描的手写签名是电子签名吗? 不是。贴在 PDF 里的签名图片只是一张图,不具备任何密码学属性——可以从一份文档复制到另一份。电子签名是上文描述的、有证书背书的数学机制。
记录在邮件里的哈希值能作为证据吗? 可以作为很强的完整性佐证:邮件有日期、有收件人,并留存于第三方服务器(邮件服务商)。如果日后出示文件的哈希值与当时发送的哈希值一致,篡改的指控将很难成立。在验证器里核对只需几秒。
压缩 PDF 会改变哈希值吗? 会——压缩会重写文件,哈希值随之改变(电子签名也会失效)。因此请记录最终文件(所有操作完成之后)的哈希值,或者把原件和压缩版连同两个哈希值一起存档。
对称加密和非对称加密有什么区别? 对称:同一个密码负责加密和解密(PDF 密码就是,即 AES-256)。非对称:一对密钥,一公一私——电子签名和证书的基础。哈希两者都不是:它是单向的摘要函数,是前两者共同的积木。