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