跳转到内容

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)手册页

外部链接