2009-11-02 987 views
4

我有一個由第三方系統生成的PDF。使用PDF編輯器或els軟件,我修改了它。
是否可以檢測出PDF文件是否被修改過,沒有原始文件?如何檢查PDF是否被修改

我會添加一些更多的細節。

沒有加密和沒有簽名功能。

文檔由IT系統創建。用戶收到文件並修改它。

是否有可能以某種方式跟蹤這種變化?

我認爲所有這些應用程序都會在PDF標頭或文件內編碼的某個位置留下一些數據,並且可以對其進行檢查。然而,由Windows資源管理器顯示的屬性什麼也沒有顯示...所以我有興趣,如果有一些比在瀏覽器中查看屬性/標題更聰明。

回答

1

你可以隨時檢查pdf文件的md5sum。我不確定你使用的是什麼環境,但這應該有助於你開始。

1

除非有加密或數字簽名等安全特性應用於它,否則它聽起來並不像原來的文件那樣粗糙。你有權訪問有關原始文件的任何信息嗎?文件大小,創建日期,任何元數據等?

0

如果用於修改PDF的工具按照PDF規範工作,那麼在Info字典中,它應該更新ModDate,但只保留CreationDate。您也可以在對象上看到一些非零代數,儘管所有對象都可以重新生成,因此它們將成爲0代。試用版本CosEdit將允許您查看這兩個項目。

但是,如果該工具已被用於故意修改PDF而不留下痕跡,那麼他們將欺騙這些數據位,以免它們對您有所幫助。

0

用戶是否使用Acrobat修改PDF?如果是這樣,那麼Danio上面提到的應該起作用。嚴格地說,修改PDF應該改變其ModDate或xmp:ModifyDate而不更改其CreationDate。然而並非所有工具都堅持這一點;不少人只是簡單地保留所有的元數據,所以這種檢查方法並不是100%可靠的,除非你知道你的用戶使用什麼PDF編輯器。

如果你的用戶使用的編輯器確實改變了ModDate或xmp:ModifyDate,那麼你應該能夠在兩個地方看到它。一種是在Acrobat中打開文檔並按下Ctrl-D以查看文檔屬性。創建字段和修改字段應具有不同的時間戳。也可能有API可用於以編程方式檢索此元數據。另一種可視化的方式是簡單地在記事本中打開PDF並搜索屬性。大部分文檔都不可讀,但這些時間戳應該是。如果他們確實得到了適當的改變,你可以隨時在你的應用程序中解析它們。祝你好運!

1

這樣做的問題是,只需在預覽中打開Mac上的PDF,然後按Command-S保存文件即可替換創建日期和修改日期以匹配當前日期/時間。所以即使創建日期也是錯誤的。即使是新手用戶也可能在不知不覺中做到這一點,所以如果您試圖追蹤可能有意修改文檔的人,可能會導致誤報。

你所要求的只是太容易欺騙和愚蠢的不幸。