1.\" $FreeBSD: src/sbin/md5/md5.1,v 1.24 2005/03/10 09:56:39 cperciva Exp $ 2.Dd January 9, 2021 3.Dt MD5 1 4.Os 5.Sh NAME 6.Nm md5 , 7.Nm sha1 , 8.Nm sha256 , 9.Nm sha512 , 10.Nm rmd160 11.Nd calculate a message-digest fingerprint (checksum) for a file 12.Sh SYNOPSIS 13.Nm md5 14.Op Fl pqrtx 15.Op Fl b Ar offset 16.Op Fl e Ar offset 17.Op Fl s Ar string 18.Op Ar 19.Nm sha1 20.Op Fl pqrtx 21.Op Fl b Ar offset 22.Op Fl e Ar offset 23.Op Fl s Ar string 24.Op Ar 25.Nm sha256 26.Op Fl pqrtx 27.Op Fl b Ar offset 28.Op Fl e Ar offset 29.Op Fl s Ar string 30.Op Ar 31.Nm rmd160 32.Op Fl pqrtx 33.Op Fl b Ar offset 34.Op Fl e Ar offset 35.Op Fl s Ar string 36.Op Ar 37.Sh DESCRIPTION 38The 39.Nm md5 , 40.Nm sha1 , 41.Nm sha256 , 42.Nm sha512 43and 44.Nm rmd160 45utilities take as input a message of arbitrary length and produce as 46output a 47.Dq fingerprint 48or 49.Dq message digest 50of the input. 51It is conjectured that it is computationally infeasible to 52produce two messages having the same message digest, or to produce any 53message having a given prespecified target message digest. 54The 55.Tn MD5 , SHA-1, SHA-256, SHA-512 56and 57.Tn RIPEMD-160 58algorithms are intended for digital signature applications, where a 59large file must be 60.Dq compressed 61in a secure manner before being encrypted with a private 62(secret) 63key under a public-key cryptosystem such as 64.Tn RSA . 65.Pp 66The 67.Tn MD5 68and 69.Tn SHA-1 70algorithms are vulnerable to practical collision attacks. 71.Pp 72The following options may be used in any combination and must 73precede any files named on the command line. 74The hexadecimal checksum of each file listed on the command line is printed 75after the options are processed. 76.Bl -tag -width indent 77.It Fl b Ar offset 78When processing file(s), use the specified begin and/or end (below) instead 79of processing each file in its entirety. 80Either option can be omitted. 81Both begin- and end-offsets can be specified as just a number (of bytes) or 82be followed by K, M, or G to mean that the number is to be multiplied by 831024 once, twice, or thrice respectively. 84For example, to start at 512, you can use 85.Fl b Ar 512 86or 87.Fl b Ar 0.5K . 88.Pp 89The use of offsets is implemented using 90.Fn mmap 91and will only work on regular files and mmap-able devices. 92.Pp 93If the beginning offset is negative, its absolute value is subtracted 94from the file's size. 95Zero thus means the very beginning of each file, 96which is also the default if the option is omitted entirely. 97.It Fl e Ar offset 98If the end-offset is not positive, its absolute value is subtracted 99from the file's size. 100Zero thus means the very end of each file, 101which is also the default if the option is omitted entirely. 102.It Fl s Ar string 103Print a checksum of the given 104.Ar string . 105.It Fl p 106Echo stdin to stdout and append the checksum to stdout. 107.It Fl q 108Quiet mode \(em only the checksum is printed out. 109Overrides the 110.Fl r 111option. 112.It Fl r 113Reverses the format of the output. 114This helps with visual diffs. 115Does nothing 116when combined with the 117.Fl ptx 118options. 119.It Fl t 120Run a built-in time trial. 121.It Fl x 122Run a built-in test script. 123.El 124.Sh EXIT STATUS 125The 126.Nm md5 , 127.Nm sha1 , 128.Nm sha256 , 129.Nm sha512 130and 131.Nm rmd160 132utilities exit 0 on success, and 133.Dv EX_NOINPUT Pq 66 134if at least one of the input files could not be read or 135invalid offsets were specified. 136A mistake with command line arguments results in 137.Dv EX_USAGE Pq 64 . 138.Sh SEE ALSO 139.Xr cksum 1 , 140.Xr mmap 2 141.Rs 142.%A R. Rivest 143.%T The MD5 Message-Digest Algorithm 144.%O RFC 1321 145.Re 146.Rs 147.%A J. Burrows 148.%T The Secure Hash Standard 149.%O FIPS PUB 180-1 150.Re 151.Rs 152.%A D. Eastlake and P. Jones 153.%T US Secure Hash Algorithm 1 154.%O RFC 3174 155.Re 156.Pp 157RIPEMD-160 is part of the ISO draft standard 158.Qq ISO/IEC DIS 10118-3 159on dedicated hash functions. 160.Pp 161Secure Hash Standard (SHS): 162.Pa http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf . 163.Pp 164The RIPEMD-160 page: 165.Pa http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html . 166.Sh ACKNOWLEDGMENTS 167This program is placed in the public domain for free general use by 168RSA Data Security. 169.Pp 170Support for SHA-1 and RIPEMD-160 has been added by 171.An Oliver Eikemeier Aq Mt eik@FreeBSD.org . 172