Wikipedia

sha1sum

sha1sum is a computer program that calculates and verifies SHA-1 hashes. It is commonly used to verify the integrity of files. It (or a variant) is installed by default in most Linux distributions. Typically distributed alongside sha1sum are sha224sum, sha256sum, sha384sum and sha512sum, which use a specific SHA-2 hash function.

The SHA-1 variants are proven vulnerable to collision attacks, and users should use, for example, a SHA-2 variant such as sha256sum instead to prevent tampering by an adversary.[1][2]

It is included in GNU Core Utilities,[3] Busybox,[4] and Toybox.[5] Ports to a wide variety of systems are available, including Microsoft Windows.

Examples

To create a file with an sha1 hash in it, if one is not provided:

$ sha1sum filename [filename2] ... > SHA1SUM 

If distributing one file, ".sha1" may be appended to the filename e.g.:

$ sha1sum --binary my-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 -b my-zip.tar.gz d5db29cd03a2ed055086cef9c31c252b4587d6d0 *my-zip.tar.gz $ sha1sum -b subdir/filename2 55086cef9c87d6d031cd5db29cd03a2ed0252b45 *subdir/filename2 

To verify that a file was downloaded correctly or that it has not been tampered with:

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

Hash 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:

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

Likewise, piping the output from find into xargs yields the same output:

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

Related programs

  • shasum is a Perl program to calculate any of SHA-1, 224, 256, 384, 512.[6] It is part of the ActivePerl distribution.
  • sha3sum is a similarly named program that calculates SHA-3, HAKE, RawSHAKE and Keccak functions.[7]
  • The <hash>sum naming convention is also used by the BLAKE team with b2sum and b3sum, by the program tthsum, 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.[8]

See also

References

  1. ^ Bruce Schneier. "Cryptanalysis of SHA-1". Schneier on Security.
  2. ^ https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html
  3. ^ https://www.gnu.org/software/coreutils/manual/html_node/sha1sum-invocation.html
  4. ^ https://github.com/mirror/busybox/blob/a6f8651/testsuite/sha1sum.tests
  5. ^ https://github.com/landley/toybox/blob/409a8e093a4ea8e0892ab302b4fd433d08f435eb/toys/lsb/md5sum.c#L17
  6. ^ shasum(1) – Linux General Commands Manual
  7. ^ sha3sum(1) – Linux General Commands Manual
  8. ^ md5(1) – FreeBSD General Commands Manual

External links

This article is copied from an article on Wikipedia® - the free encyclopedia created and edited by its online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of Wikipedia® encyclopedia articles provide accurate and timely information, please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.

Copyright © 2003-2025 Farlex, Inc Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.