6 .Nm md5 , sha1 , sha224 , sha256 , sha384 , sha512 , sha512t256 , rmd160 ,
7 .Nm skein256 , skein512 , skein1024 ,
8 .Nm md5sum , sha1sum , sha224sum , sha256sum , sha384sum , sha512sum ,
9 .Nm sha512t256sum , rmd160sum , skein256sum , skein512sum , skein1024sum
10 .Nd calculate a message-digest fingerprint (checksum) for a file
18 (All other hashes have the same options and usage.)
21 .Nm md5 , sha1 , sha224 , sha256 , sha384 , sha512 , sha512t256 , rmd160 ,
22 .Nm skein256 , skein512 ,
25 utilities take as input a message of arbitrary length and produce as
32 .Nm md5sum , sha1sum , sha224sum , sha256sum , sha384sum , sha512sum ,
33 .Nm sha512t256sum , rmd160sum , skein256sum , skein512sum ,
36 utilities do the same, but default to the reversed format of
40 It is conjectured that it is computationally infeasible to
41 produce two messages having the same message digest, or to produce any
42 message having a given prespecified target message digest.
43 The SHA-224 , SHA-256 , SHA-384 , SHA-512, RIPEMD-160,
45 algorithms are intended for digital signature applications, where a
48 in a secure manner before being encrypted with a private
50 key under a public-key cryptosystem such as RSA.
52 The MD5 and SHA-1 algorithms have been proven to be vulnerable to practical
53 collision attacks and should not be relied upon to produce unique outputs,
54 .Em nor should they be used as part of a cryptographic signature scheme.
55 As of 2017-03-02, there is no publicly known method to
57 either algorithm, i.e., to find an input that produces a specific
60 SHA-512t256 is a version of SHA-512 truncated to only 256 bits.
61 On 64-bit hardware, this algorithm is approximately 50% faster than SHA-256 but
62 with the same level of security.
63 The hashes are not interchangeable.
65 It is recommended that all new applications use SHA-512 or SKEIN-512
66 instead of one of the other hash functions.
68 The following options may be used in any combination and must
69 precede any files named on the command line.
70 The hexadecimal checksum of each file listed on the command line is printed
71 after the options are processed.
72 .Bl -tag -width indent
74 Ignored for compatibility with the coreutils
78 Compare the digest of the file against this string.
79 .Pq Note that this option is not yet useful if multiple files are specified.
80 This option causes an error in for the
82 programs because it check the checksums listed in a file for the coreutils
84 programs that is not yet implemented.
86 Print a checksum of the given
89 Echo stdin to stdout and append the checksum to stdout.
91 Quiet mode \(em only the checksum is printed out.
96 Reverses the format of the output.
97 This helps with visual diffs.
99 when combined with the
103 Run a built-in time trial.
106 versions, this is a nop for compatibility with coreutils.
108 Run a built-in test script.
112 .Nm md5 , sha1 , sha224 , sha256 , sha512 , sha512t256 , rmd160 ,
113 .Nm skein256 , skein512 ,
116 utilities exit 0 on success,
117 1 if at least one of the input files could not be read,
118 and 2 if at least one file does not have the same hash as the
122 Calculate the MD5 checksum of the string
124 .Bd -literal -offset indent
126 MD5 ("Hello") = 8b1a9953c4611296a827abf8c47804d7
129 Same as above, but note the absence of the newline character in the input
131 .Bd -literal -offset indent
132 $ echo -n Hello | md5
133 8b1a9953c4611296a827abf8c47804d7
136 Calculate the checksum of multiple files reversing the output:
137 .Bd -literal -offset indent
138 $ md5 -r /boot/loader.conf /etc/rc.conf
139 ada5f60f23af88ff95b8091d6d67bef6 /boot/loader.conf
140 d80bf36c332dc0fdc479366ec3fa44cd /etc/rc.conf
144 .Pa /boot/loader.conf
147 Then calculate the checksum again and validate it against the checksum string
151 .Bd -literal -offset indent
152 $ md5 /boot/loader.conf > digest && md5 -c $(cut -f2 -d= digest) /boot/loader.conf
153 MD5 (/boot/loader.conf) = ada5f60f23af88ff95b8091d6d67bef6
156 Same as above but comparing the digest against an invalid string
157 .Pq Dq randomstring ,
158 which results in a failure.
159 .Bd -literal -offset indent
160 $ md5 -c randomstring /boot/loader.conf
161 MD5 (/boot/loader.conf) = ada5f60f23af88ff95b8091d6d67bef6 [ Failed ]
174 .%T The MD5 Message-Digest Algorithm
179 .%T The Secure Hash Standard
183 .%A D. Eastlake and P. Jones
184 .%T US Secure Hash Algorithm 1
188 RIPEMD-160 is part of the ISO draft standard
189 .Qq ISO/IEC DIS 10118-3
190 on dedicated hash functions.
192 Secure Hash Standard (SHS):
193 .Pa http://csrc.nist.gov/cryptval/shs.html .
196 .Pa http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html .
198 All of the utilities that end in
200 are intended to be compatible with the GNU coreutils programs.
201 However, the long arguments and the
203 functionality are not provided.
205 This program is placed in the public domain for free general use by
208 Support for SHA-1 and RIPEMD-160 has been added by
209 .An Oliver Eikemeier Aq Mt eik@FreeBSD.org .