在PHP中记录数字签名

时间:2012-07-30 09:17:23

标签: php zend-framework document digital-signature

新法规强制我的申请允许用户仅附加经过数字签名的文件。我以前从未在我的应用程序中以任何特殊方式处理数字签名文档,所以我不知道选择哪种方法。

基本上我可以使用两种不同的方法。

  1. 实施允许用户签署文件的功能
  2. 让用户使用其他软件签署文档,只检查文档是否包含签名并验证其内容
  3. 我的应用程序是用Zend框架编写的,支持上传pdf,doc / docx和xsl / xslx文档

    我想知道如何查看该文档是否包含数字签名+时间戳及其中的内容(名称,公司)或是否有效,以便我可以允许/拒绝它的上传。

    或者我想知道如何让用户以数字方式签署文档并在我的网络应用程序中为签名添加时间戳。

2 个答案:

答案 0 :(得分:1)

您可以借助PHPDocX向Word(docx)文档添加数字签名。

它不需要Microsoft Office,可以在任何运行PHP的服务器上运行。

您也可以使用相同的包来签署PDF文件。

答案 1 :(得分:0)

所有提到的格式都支持嵌入式数字签名,但我严重怀疑您会找到PHP库来处理这些格式,以验证是否包含签名。

要让用户签署文档,您需要在客户端签署文档或支持分布式签名。根据您的描述,我猜文档已经存储在客户端系统上,因此您需要添加的是在客户端计算机上执行签名的内容。

我可以想象Java applet会在用户选择数据时从浏览器中签署文档,然后将签名文件发布到服务器。这是大多数基于银行浏览器的软件所做的。

我知道一个Java库,可以对PDF和办公文档进行数字签名。这是我们的SecureBlackbox(Java版)。您可以使用我们的组件构建浏览器小程序。对于PDF签名,还存在iText,但我对用Java签名的Office DOC和XLS文件一无所知。