[英]Generate two exactly equal PDFs with Java or iText
通過使用此示例 (FirstPDF)刪除了“ new Date()”語句,我生成了兩個PDF。
它們看起來相等,但是在它們上計算md5哈希值時,它們實際上是不同的。
我已經檢查了它們,並且它們注冊了creationDate
,即使句子document.addCreationDate()
不包含在源代碼中。
問題很簡單:任何API都可以以任何方式生成兩個字節完全相同的PDF嗎?
這應該是這樣。 除了元數據中的日期外,每次從頭開始生成PDF時,都會添加一個唯一的ID。
如果您需要兩個相同的文件來提供相同的MD5哈希值,為什么不復制已經創建的文件呢?
如果您需要通過兩個單獨的API調用來創建兩個相同的文件,則可以使用任何值得的PDF創建API:
如上所述這里 ,文件不等於因為他們有不同的標識符(有兩個文件,在不同的時刻創建的,應該有不同的ID如PDF規范中定義)。
文件標識符通常是基於日期,路徑名,文件大小,PDF文件內容的一部分(例如,信息詞典中的條目)創建的哈希。
。
文件標識符與文檔加密有關(並且是必需的)。 結果,具有不同文件標識符的加密PDF文件將具有完全不同的流。
通過設計,您永遠不能使用相同的代碼創建兩個相同的PDF。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.