sha1sum is a computer program that calculates and verifies SHA-1hashes. It is commonly used to verify the integrity of files. It (or a variant) is installed by default on most Linux distributions. Typically distributed alongside sha1sum are sha224sum, sha256sum, sha384sum and sha512sum, which use a specific SHA-2 hash function and b2sum,[1] which uses the BLAKE2 cryptographic hash function.
The SHA-1 variants are proven vulnerable to collision attacks, and users should instead use, for example, a SHA-2 variant such as sha256sum or the BLAKE2 variant b2sum to prevent tampering by an adversary.[2][3]
It is included in GNU Core Utilities,[4]Busybox (excluding b2sum),[5] and Toybox (excluding b2sum).[6] Ports to a wide variety of systems are available, including Microsoft Windows.
Examples
To create a file with a SHA-1 hash in it, if one is not provided:
$ sha1sumfilename[filename2]...>SHA1SUM If distributing one file, the .sha1file extension may be appended to the filename e.g.:
$ sha1sum--binarymy-zip.tar.gz>my-zip.tar.gz.sha1 The output contains one line per file of the form "{hash} SPACE (ASTERISK|SPACE) [{directory} SLASH] {filename}". (Note well, if the hash digest creation is performed in text mode instead of binary mode, then there will be two space characters instead of a single space character and an asterisk.) For example:
$ sha1sum-bmy-zip.tar.gz d5db29cd03a2ed055086cef9c31c252b4587d6d0 *my-zip.tar.gz$ sha1sum-bsubdir/filename2 55086cef9c87d6d031cd5db29cd03a2ed0252b45 *subdir/filename2To verify that a file was downloaded correctly or that it has not been tampered with:
$ sha1sum-cSHA1SUM filename: OKfilename2: OK$ sha1sum-cmy-zip.tar.gz.sha1 my-zip.tar.gz: OKHash file trees
sha1sum can only create checksums of one or multiple files inside a directory, but not of a directory tree, i.e. of subdirectories, sub-subdirectories, etc. and the files they contain. This is possible by using sha1sum in combination with the find command with the -exec option, or by piping the output from find into xargs. sha1deep can create checksums of a directory tree.
To use sha1sum with find:
$ finds_*-typef-execsha1sum'{}'\;65c23f142ff6bcfdddeccebc0e5e63c41c9c1721 s_1/file_s11d3d59905cf5fc930cd4bf5b709d5ffdbaa9443b2 s_2/file_s215590e00ea904568199b86aee4b770fb1b5645ab8 s_a/file_02Likewise, piping the output from find into xargs yields the same output:
$ finds_*-typef|xargssha1sum 65c23f142ff6bcfdddeccebc0e5e63c41c9c1721 s_1/file_s11d3d59905cf5fc930cd4bf5b709d5ffdbaa9443b2 s_2/file_s215590e00ea904568199b86aee4b770fb1b5645ab8 s_a/file_02Related programs
- shasum is a Perl program to calculate any of SHA-1, 224, 256, 384, 512 hashes.[7] It is part of the ActivePerl distribution.
- sha3sum is a similarly named program that calculates SHA-3, HAKE, RawSHAKE, and Keccak functions.[8]
- The <hash>sum naming convention is also used by the BLAKE team with
b2sumandb3sum, by the programtthsum, and many others. - On FreeBSD and OpenBSD, the utilities are called md5, sha1, sha256, and sha512. These versions offer slightly different options and features. Additionally, FreeBSD offers the Skein family of message digests.[9]
See also
References
- ^"b2sum source code in GNU coreutils". GNU coreutils mirror at GitHub. Retrieved 29 Jan 2022.
- ^Bruce Schneier. "Cryptanalysis of SHA-1". Schneier on Security.
- ^"Announcing the first SHA1 collision".
- ^"Sha1sum invocation (GNU Coreutils 9.0)".
- ^"Mirror/Busybox". GitHub. 26 October 2021.
- ^"Landley/Toybox". GitHub. 26 October 2021.
- ^ – Linux General Commands Manual from ManKier.com
- ^ – Linux General Commands Manual from ManKier.com
- ^ – FreeBSD General Commands Manual
External links
- Cryptographic software
- Unix security-related software