跳至內容

Sha1sum

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

sha1sum是一個計算和驗證SHA-1哈希值的計算機程序。它通常用於驗證文件的完整性。它(或一個變體)默認安裝在大多數Linux 發行版上sha1sum一起分布的是sha224sum ,sha256sum ,sha384sumsha512sum ,它使用特定的SHA-2哈希函數。

SHA-1 變體被證明容易受到碰撞攻擊,用戶應該改用,例如,SHA-2 變體,如sha256sum以防止被對手篡改。 [1] [2]

它包含在GNU Core Utilities[3] Busybox[4]和Toybox 中。 [5]可以使用各種系統的端口,包括 Microsoft Windows。

例子

[編輯]

要創建一個包含 SHA-1 哈希的文件(如果未提供):

$ sha1sum filename [filename2] ... > SHA1SUM

如果分發一個文件,則.sha1文件擴展名可以附加到文件名,例如:

$ sha1sum --binary my-zip.tar.gz > my-zip.tar.gz.sha1

輸出包含格式為「 {hash} SPACE (ASTERISK|SPACE) [{directory} SLASH] {filename} 」的每個文件一行。 (注意,如果哈希摘要創建是在文本模式而不是二進制模式下執行的,那麼將有兩個空格字符而不是單個空格字符和一個星號。 ) 例如:

$ sha1sum -b my-zip.tar.gz
d5db29cd03a2ed055086cef9c31c252b4587d6d0 *my-zip.tar.gz
$ sha1sum -b subdir/filename2
55086cef9c87d6d031cd5db29cd03a2ed0252b45 *subdir/filename2

要驗證文件是否已正確下載或未被篡改:

$ sha1sum -c SHA1SUM
filename: OK
filename2: OK
$ sha1sum -c my-zip.tar.gz.sha1
my-zip.tar.gz: OK

哈希文件樹

[編輯]

sha1sum 只能創建一個目錄中一個或多個文件的校驗和,而不能創建目錄樹的校驗和,即子目錄、子子目錄等及其包含的文件。 這可以通過將 sha1sum 與帶有 -exec 選項的 find 命令結合使用,或通過管道將 find 的輸出輸入 xargs 來實現。 sha1deep 可以創建目錄樹的校驗和。

使用sha1sumfind

$ find s_* -type f -exec sha1sum '{}' \;
65c23f142ff6bcfdddeccebc0e5e63c41c9c1721 s_1/file_s11
d3d59905cf5fc930cd4bf5b709d5ffdbaa9443b2 s_2/file_s21
5590e00ea904568199b86aee4b770fb1b5645ab8 s_a/file_02

同樣,從管道輸出findxargs產生相同的輸出:

$ find s_* -type f | xargs sha1sum
65c23f142ff6bcfdddeccebc0e5e63c41c9c1721 s_1/file_s11
d3d59905cf5fc930cd4bf5b709d5ffdbaa9443b2 s_2/file_s21
5590e00ea904568199b86aee4b770fb1b5645ab8 s_a/file_02

相關軟件

[編輯]
  • shasum是一個Perl程序,用於計算任何 SHA-1、224、256、384、512 哈希值。 [6]它是ActivePerl發行版的一部分。
  • sha3sum是一個類似名稱的程序,用於計算SHA-3 、HAKE、RawSHAKE 和Keccak函數。 [7]
  • <hash>sum命名約定也被BLAKE團隊與b2sumb3sum 、程序tthsum等使用。
  • FreeBSDOpenBSD 上,這些實用程序被稱為md5 ,sha1sha256sha512 。這些版本提供略有不同的選項和功能。此外,FreeBSD 提供了Skein系列的消息摘要。 [8]

參見

[編輯]

參考

[編輯]
  1. ^ Bruce Schneier. Cryptanalysis of SHA-1. Schneier on Security. [2021-10-28]. (原始內容存檔於2017-04-14). 
  2. ^ Announcing the first SHA1 collision. [2021-10-28]. (原始內容存檔於2017-04-24). 
  3. ^ Sha1sum invocation (GNU Coreutils 9.0). [2021-10-28]. (原始內容存檔於2022-03-10). 
  4. ^ Mirror/Busybox. 26 October 2021 [2021-10-28]. (原始內容存檔於2021-10-28). 
  5. ^ Landley/Toybox. 26 October 2021 [2021-10-28]. (原始內容存檔於2021-10-28). 
  6. ^ [[[:Template:Man/ManKier]] shasum(Template:Man/ManKier)] – Template:Man/ManKier
  7. ^ [[[:Template:Man/ManKier]] sha3sum(Template:Man/ManKier)] – Template:Man/ManKier
  8. ^ md5(1) – FreeBSD通用命令(General Commands)手冊頁

外部連結

[編輯]