Hashsum

如何使用 md5sum 與不包含文件名的 md5 文件進行校驗和

  • April 29, 2015

我有 2 個文件 test.txt 和 test.txt.md5。我想驗證 test.txt 的校驗和。

gnu 工具 md5sum 需要具有以下格式的 md5 文件“

$$ md5-hash $$$$ space $$$$ space $$$$ filename $$" (md5sum -c test.txt.md5)。不幸的是,我的 test.txt.md5 只包含 md5 雜湊(沒有空格和文件名)。 如何將“test.txt.md5”文件中的雜湊值傳遞給“md5sum -c”命令?我想我必須使用標準輸入但是我看到的所有範例都嘗試重新創建 md5sum 文件格式

文件的內容是:

test.txt:

test

test.txt.md5

d8e8fca2dc0f896fd7cb4cb0031ba249

像許多命令一樣,md5sum如果選項的值為-(from man md5sum),則可以從標準輸入中讀取:

列印或檢查 MD5(128 位)校驗和。沒有 FILE,或者當 FILE 為 - 時,讀取標準輸入

由於您知道文件名,您可以簡單地列印 md5 文件的內容、幾個空格和名稱,然後將其傳遞給md5sum

$ cat test.txt.md5 
5a6d311c0d8f6d1dd03c1c129061d3b1
$ md5sum -c <(printf "%s  test.txt\n" $(cat test.txt.md5)) 
test.txt: OK

另一種選擇是將文件名添加到您的文件中:

$ sed -i  's/$/  test.txt/' test.txt.md5
$ md5sum -c test.txt.md5 
test.txt: OK

引用自:https://unix.stackexchange.com/questions/199402