此條目包含過多行話或專業術語,可能需要簡化或提出進一步解釋。 (2021年10月28日) |
sha1sum是一个计算和验证SHA-1哈希值的计算机程序。它通常用于验证文件的完整性。它(或一个变体)默认安装在大多数Linux 发行版上。 sha1sum
一起分布的是sha224sum ,sha256sum ,sha384sum和sha512sum ,它使用特定的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 可以创建目录树的校验和。
使用sha1sum与find:
$ 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
b2sum
和b3sum
、程序tthsum
等使用。