Md5sum
{{Short description|Software that verifies hashes}}
{{lowercase title}}
{{Infobox software
| name = md5sum
| logo =
| screenshot =
| screenshot size =
| caption =
| author = Ulrich Drepper, Scott Miller, David Madorehttps://linux.die.net/man/1/md5sum
| developer =
| released =
| latest release version =
| latest release date =
| operating system = Unix and Unix-like
| platform = Cross-platform
| genre = Command
| license = coreutils: GNU GPL v3
| website =
}}
{{mono|md5sum}} is a computer program that calculates and verifies 128-bit MD5 hashes, as described in RFC 1321. The MD5 hash functions as a compact digital fingerprint of a file. As with all such hashing algorithms, there is theoretically an unlimited number of files that will have any given MD5 hash. However, it is very unlikely that any two non-identical files in the real world will have the same MD5 hash, unless they have been specifically created to have the same hash.{{cite web
| url = https://help.ubuntu.com/community/HowToMD5SUM
| title = HowToMD5SUM - Community Help Wiki
| website = help.ubuntu.com
| access-date = 2018-11-02}}
The underlying MD5 algorithm is no longer deemed secure. Thus, while {{mono|md5sum}} is well-suited for identifying known files in situations that are not security related, it should not be relied on if there is a chance that files have been purposefully and maliciously tampered. In the latter case, the use of a newer hashing tool such as sha256sum is recommended.
{{mono|md5sum}} is used to verify the integrity of files, as virtually any change to a file will cause its MD5 hash to change. Most commonly, {{mono|md5sum}} is used to verify that a file has not changed as a result of a faulty file transfer, a disk error or non-malicious meddling. The {{mono|md5sum}} program is included in most Unix-like operating systems or compatibility layers such as Cygwin.
The original C code was written by Ulrich Drepper and extracted from a 2001 release of {{mono|glibc}}.{{cite web
| url = https://rdrr.io/r/tools/md5sum.html
| title = md5sum: Compute MD5 Checksums
| website = rdrr.io
| access-date = 2018-11-02}}
Examples
All of the following files are assumed to be in the current directory.
=Create MD5 hash file hash.md5=
$ md5sum filetohashA.txt filetohashB.txt filetohashC.txt > hash.md5
==File produced==
File contains hash and filename pairs:
$ cat hash.md5
595f44fec1e92a71d3e9e77456ba80d1 filetohashA.txt
71f920fa275127a7b60fa4d4d41432a3 filetohashB.txt
43c191bf6d6c3f263a8cd0efd4a058ab filetohashC.txt
Please note:
- There must be two spaces or a space and an asterisk between each {{mono|md5sum}} value and filename to be compared (the second space indicates text mode, the asterisk binary mode). Otherwise, the following error will result:
no properly formatted MD5 checksum lines found
. Many programs don't distinguish between the two modes, but some utils do. - The file must be also be UNIX line ending formatted, otherwise this will be seen:
md5sum: WARNING: x listed files could not be read
. {{mono|dos2unix}} will convert it quickly if it is DOS/Windows formatted.
=Check MD5=
$ md5sum -c hash.md5
filetohashA.txt: OK
filetohashB.txt: OK
filetohashC.txt: OK
=Check single MD5=
$ echo 'D43F2404CA13E22594E5C8B04D3BBB81 filetohashA.txt' | md5sum -c
filetohashA.txt: OK
On non-GNU systems
{{code|md5sum}} is specific to systems that use GNU coreutils or a clone such as BusyBox. On FreeBSD and OpenBSD the utilities are called {{mono|md5}}, {{mono|sha1}}, {{mono|sha256}}, and {{mono|sha512}}. These versions offer slightly different options and features. Additionally, FreeBSD offers the "SKEIN" family of message digests.{{man|1|md5|FreeBSD}}
See also
References
{{Reflist}}