我希望能夠使用 itext 多次簽署 pdf 檔案。但我沒有私鑰。我正在生成一個哈希供客戶端簽名,在重新簽名後,我調用 signDeferred()
。是否可以製作多個空容器,用所有空容器產生一個雜湊值,然後在它們出現時添加簽名?
我嘗試添加超過 1 個空容器,生成哈希,客戶端簽名並返回哈希,我嘗試添加,但收到錯誤,它不是最後一個字段。您只能在最後一個欄位上呼叫 signDeferred
。但我不知道如何修復它,因為 signDetached
不是一個選項,因為我沒有私鑰。
不,這是不可能的,至少對於可互通的 PDF 簽章來說是不可能的。
原因是沒有為 PDF 指定真正的平行簽名(或反簽名)概念,只有串行簽名概念,一個簽名接一個簽名,每個新簽名也覆蓋所有先前的簽名:
(有關更多詳細信息,請參閱此答案。)
#嚴格來說,PDF 規範並不要求簽名來覆蓋除嵌入簽名容器本身的佔位符之外的所有整個修訂版,它只是推薦它。因此,理論上可以建立具有多個簽章的 PDF,每個簽章會覆蓋除所有嵌入的簽章值之外的整個 PDF。
但實際上,PDF 簽名驗證器會拒絕此類建構。此外,更現代的簽章設定檔(特別是 PAdES 基準設定檔)確實需要簽章來覆寫除簽章容器佔位符之外的所有整個修訂版。
以上是多次延期簽約的詳細內容。更多資訊請關注PHP中文網其他相關文章!