簡體   English   中英

無論如何(命令行工具)計算.NEF(也.CR2,.TIFF)的MD5哈希,無論任何元數據?

[英]Is there anyway (commandline tools) to calculate MD5 hash for .NEF (also .CR2, .TIFF) regardless any metadata?

無論如何(命令行工具)計算.NEF(也.CR2,.TIFF)的MD5哈希,無論是否有任何元數據,例如EXIF,IPTC,XMP等等?

一旦我們更新圖像文件中的任何元數據,MD5哈希應該是相同的。

我搜索了一會兒,最接近的解決方案是:

exiftool test.nef -all= -o - -m | md5

但'exiftool -all ='仍然在輸出文件中保留一組EXIF標記。 如果我更新剩余的標簽,可以更改MD5哈希。

ImageMagick有一種方法可以做到這一點。 它安裝在大多數Linux發行版上,可用於OSX(理想情況下通過homebrew )和Windows。 image signature有一個轉義,它只包含像素數據而不包含元數據 - 您可以像這樣使用它:

identify -format %# _DSC2007.NEF
feb37d5e9cd16879ee361e7987be7cf018a70dd466d938772dd29bdbb9d16610

我知道它可以做你想要的,並且當你修改PNG文件上的元數據時計算的校驗和不會改變,我知道它確實為CR2NEF文件正確計算了校驗和。 但是,我不習慣修改你所擁有的RAW文件,並且沒有測試過它在這種情況下是正確的 - 盡管如果不這樣做我會感到震驚! 所以請在使用前進行測試。

仍然存在一些Exif數據的原因是因為NEF文件的圖像數據(以及類似的基於TIFF的文件類型)位於該Exif塊內。 刪除它,您已刪除圖像數據。 請參閱ExifTool FAQ 7 ,其中包含可幫助您解決的示例快捷方式標記。

我假設您的目的是驗證實際圖像數據是否未被篡改。
剝離元數據的另一種方法是將圖像轉換為沒有元數據的格式。
ImageMagick是一個眾所周知的開源(Apache 2許可證),用於圖像處理和轉換。 它為各種語言綁定提供了庫,並為各種操作系統提供了命令行工具。

你可以嘗試:

convert test.nef bmp:- | md5

這會將test.nef轉換為stdout上的bmp並將其傳遞給md5。
AFAIR bmp不支持元數據,我不確定ImageMagick是否甚至在轉換中保留元數據。
這僅適用於單個圖像文件(即不是多圖像tiff或gif動畫)。 還可能會對圖像進行一些更改,因為顏色空間轉換會導致相同的轉換,但這些更改將不可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM