Filesystems
有校驗和的文件格式嗎?
我想為我的應用程序儲存文件的 SHA512 校驗和。如何以共同(流行)的方式做到這一點?所以這個校驗和可以被第三方應用程序使用,但也可以使用。
將校驗和寫為小寫十六進制數字,後跟兩個空格,然後是文件名,每行一個文件。
md5sum
這是各種sha*sum
CLI 工具使用的格式。$ sha512sum t.txt d663b43c84ab4ba20040e568d3cb799512fcc00f1053f96f3079345f680b39429adc92f9c8c45fc9ae6053173ddc5b35ade25ae1d5c91e57b809d0c021d5c891 t.txt $ sha512sum -c <(sha512sum t.txt) t.txt: OK
TL; 博士
文件格式是用於生成摘要的命令的輸出。
$ shasum -a 512 [FILE] > SHA512SUM # create a checksum file (SHA512SUM) $ shasum -c SHA512SUM # verify [FILE] from checksum file [FILE]: OK # output
有關生成校驗和文件的簡單方法,請參閱這些其他 linux 命令
長答案
這取決於
shasum
您使用哪種實現來檢查校驗和文件。如果您使用的是 perl 實現 (
$ shasum -c [FILE]
),那麼您可以在手冊頁中找到答案。看$ man shasum
檢查時,輸入應該是該程序以前的輸出。預設模式是列印帶有校驗和的行、指示類型的字元(’*’ 表示二進制,’’ 表示文本,’?’ 表示可移植,’^’ 表示 BITS)和每個 FILE 的名稱。
如果您使用的是GNU實現 (
$ sha512sum -c [FILE]
),那麼可以在他們的coreutils 文件下找到答案:注意:GNU sha 摘要文件參考 md5sum 摘要文件
對於每個文件,‘md5sum’ 預設輸出 MD5 校驗和、空格、指示二進製或文本輸入模式的標誌以及文件名。二進制模式用“*”表示,文本模式用“”(空格)表示。二進制模式在重要的系統上是預設的,否則文本模式是預設的。如果文件包含反斜杠或換行符,則該行以反斜杠開頭,並且文件名中的每個有問題的字元都使用反斜杠進行轉義,即使存在任意文件名,也可以使輸出明確。如果文件被省略或指定為“-”,則讀取標準輸入。