1999-11-07 04:14:55 +00:00
|
|
|
.\" $FreeBSD$
|
2016-05-28 16:06:07 +00:00
|
|
|
.Dd April 22, 2016
|
1997-03-02 21:43:10 +00:00
|
|
|
.Dt MD5 1
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
2016-05-28 16:06:07 +00:00
|
|
|
.Nm md5 , sha1 , sha256 , sha384 , sha512, sha512t256, rmd160
|
1997-03-02 21:43:10 +00:00
|
|
|
.Nd calculate a message-digest fingerprint (checksum) for a file
|
|
|
|
.Sh SYNOPSIS
|
2004-06-11 16:07:02 +00:00
|
|
|
.Nm md5
|
|
|
|
.Op Fl pqrtx
|
2011-11-13 16:35:47 +00:00
|
|
|
.Op Fl c Ar string
|
2004-06-11 16:07:02 +00:00
|
|
|
.Op Fl s Ar string
|
|
|
|
.Op Ar
|
|
|
|
.Nm sha1
|
|
|
|
.Op Fl pqrtx
|
2011-11-13 16:35:47 +00:00
|
|
|
.Op Fl c Ar string
|
2004-06-11 16:07:02 +00:00
|
|
|
.Op Fl s Ar string
|
|
|
|
.Op Ar
|
2005-03-10 09:56:39 +00:00
|
|
|
.Nm sha256
|
|
|
|
.Op Fl pqrtx
|
2011-11-13 16:35:47 +00:00
|
|
|
.Op Fl c Ar string
|
2005-03-10 09:56:39 +00:00
|
|
|
.Op Fl s Ar string
|
|
|
|
.Op Ar
|
2015-12-27 17:33:59 +00:00
|
|
|
.Nm sha384
|
|
|
|
.Op Fl pqrtx
|
|
|
|
.Op Fl c Ar string
|
|
|
|
.Op Fl s Ar string
|
|
|
|
.Op Ar
|
2012-08-01 00:36:12 +00:00
|
|
|
.Nm sha512
|
|
|
|
.Op Fl pqrtx
|
|
|
|
.Op Fl c Ar string
|
|
|
|
.Op Fl s Ar string
|
|
|
|
.Op Ar
|
2016-05-28 16:06:07 +00:00
|
|
|
.Nm sha512t256
|
|
|
|
.Op Fl pqrtx
|
|
|
|
.Op Fl c Ar string
|
|
|
|
.Op Fl s Ar string
|
|
|
|
.Op Ar
|
2004-06-11 16:07:02 +00:00
|
|
|
.Nm rmd160
|
1999-12-04 01:29:43 +00:00
|
|
|
.Op Fl pqrtx
|
2011-11-13 16:35:47 +00:00
|
|
|
.Op Fl c Ar string
|
1997-12-29 03:40:37 +00:00
|
|
|
.Op Fl s Ar string
|
2001-02-13 09:56:35 +00:00
|
|
|
.Op Ar
|
1997-03-02 21:43:10 +00:00
|
|
|
.Sh DESCRIPTION
|
2004-07-07 19:57:16 +00:00
|
|
|
The
|
2016-05-28 16:06:07 +00:00
|
|
|
.Nm md5 , sha1 , sha256 , sha384 , sha512, sha512t256
|
2004-06-11 16:07:02 +00:00
|
|
|
and
|
|
|
|
.Nm rmd160
|
|
|
|
utilities take as input a message of arbitrary length and produce as
|
|
|
|
output a
|
1997-03-02 21:43:10 +00:00
|
|
|
.Dq fingerprint
|
|
|
|
or
|
|
|
|
.Dq message digest
|
2001-09-04 09:28:48 +00:00
|
|
|
of the input.
|
|
|
|
It is conjectured that it is computationally infeasible to
|
1997-03-02 21:43:10 +00:00
|
|
|
produce two messages having the same message digest, or to produce any
|
1994-10-29 23:58:02 +00:00
|
|
|
message having a given prespecified target message digest.
|
2004-06-11 16:07:02 +00:00
|
|
|
The
|
2015-12-27 17:33:59 +00:00
|
|
|
.Tn MD5 , SHA-1 , SHA-256 , SHA-384 , SHA-512
|
2004-06-11 16:07:02 +00:00
|
|
|
and
|
|
|
|
.Tn RIPEMD-160
|
|
|
|
algorithms are intended for digital signature applications, where a
|
1997-03-02 21:43:10 +00:00
|
|
|
large file must be
|
|
|
|
.Dq compressed
|
|
|
|
in a secure manner before being encrypted with a private
|
2001-08-07 15:48:51 +00:00
|
|
|
(secret)
|
1997-03-02 21:43:10 +00:00
|
|
|
key under a public-key cryptosystem such as
|
2004-06-11 16:07:02 +00:00
|
|
|
.Tn RSA .
|
1997-03-02 21:43:10 +00:00
|
|
|
.Pp
|
2004-06-11 16:07:02 +00:00
|
|
|
.Tn MD5
|
2009-01-06 19:25:24 +00:00
|
|
|
has been completely broken as far as finding collisions is
|
|
|
|
concerned, and should not be relied upon to produce unique outputs.
|
|
|
|
This also means that
|
2004-06-11 16:07:02 +00:00
|
|
|
.Tn MD5
|
2009-01-06 19:25:24 +00:00
|
|
|
should not be used as part of a cryptographic signature scheme.
|
2014-05-18 21:16:59 +00:00
|
|
|
At the current time (2014-05-17) there is no publicly known method to
|
2009-01-06 21:16:42 +00:00
|
|
|
.Dq reverse
|
|
|
|
MD5, i.e., to find an input given a hash value.
|
2009-01-06 19:25:24 +00:00
|
|
|
.Pp
|
|
|
|
.Tn SHA-1
|
2014-05-18 21:16:59 +00:00
|
|
|
currently (2014-05-17) has no known collisions, but an attack has been
|
2009-01-06 19:25:24 +00:00
|
|
|
found which is faster than a brute-force search, placing the security of
|
|
|
|
.Tn SHA-1
|
|
|
|
in doubt.
|
|
|
|
.Pp
|
2016-05-28 16:06:07 +00:00
|
|
|
.Tn SHA-512t256
|
|
|
|
is a version of
|
|
|
|
.Tn SHA-512
|
|
|
|
truncated to only 256 bits.
|
|
|
|
On 64-bit hardware, this algorithm is approximately 50% faster than
|
2009-01-06 19:25:24 +00:00
|
|
|
.Tn SHA-256
|
2016-05-28 16:06:07 +00:00
|
|
|
but with the same level of security.
|
|
|
|
The hashes are not interchangeable.
|
|
|
|
.Pp
|
|
|
|
It is recommended that all new applications use
|
|
|
|
.Tn SHA-512
|
2009-01-06 19:25:24 +00:00
|
|
|
instead of one of the other hash functions.
|
2001-09-04 01:01:07 +00:00
|
|
|
.Pp
|
2001-06-19 03:34:03 +00:00
|
|
|
The following options may be used in any combination and must
|
2001-09-04 09:28:48 +00:00
|
|
|
precede any files named on the command line.
|
2004-06-11 16:07:02 +00:00
|
|
|
The hexadecimal checksum of each file listed on the command line is printed
|
|
|
|
after the options are processed.
|
1998-07-06 07:04:50 +00:00
|
|
|
.Bl -tag -width indent
|
2011-11-13 16:35:47 +00:00
|
|
|
.It Fl c Ar string
|
2014-05-18 21:16:59 +00:00
|
|
|
Compare the digest of the file against this string.
|
|
|
|
.Pq Note that this option is not yet useful if multiple files are specified.
|
1997-12-29 03:40:37 +00:00
|
|
|
.It Fl s Ar string
|
1998-07-06 07:04:50 +00:00
|
|
|
Print a checksum of the given
|
1997-12-29 03:40:37 +00:00
|
|
|
.Ar string .
|
1997-03-02 21:43:10 +00:00
|
|
|
.It Fl p
|
2004-06-11 16:07:02 +00:00
|
|
|
Echo stdin to stdout and append the checksum to stdout.
|
1999-12-04 01:29:43 +00:00
|
|
|
.It Fl q
|
2014-05-18 21:16:59 +00:00
|
|
|
Quiet mode \(em only the checksum is printed out.
|
2001-09-04 09:28:48 +00:00
|
|
|
Overrides the
|
1999-12-04 01:29:43 +00:00
|
|
|
.Fl r
|
|
|
|
option.
|
1999-11-07 04:14:55 +00:00
|
|
|
.It Fl r
|
2001-09-04 09:28:48 +00:00
|
|
|
Reverses the format of the output.
|
|
|
|
This helps with visual diffs.
|
|
|
|
Does nothing
|
2001-07-15 07:53:42 +00:00
|
|
|
when combined with the
|
1999-11-11 11:59:03 +00:00
|
|
|
.Fl ptx
|
1999-11-07 04:14:55 +00:00
|
|
|
options.
|
1997-03-02 21:43:10 +00:00
|
|
|
.It Fl t
|
1998-07-06 07:04:50 +00:00
|
|
|
Run a built-in time trial.
|
1997-03-02 21:43:10 +00:00
|
|
|
.It Fl x
|
1998-07-06 07:04:50 +00:00
|
|
|
Run a built-in test script.
|
1997-03-02 21:43:10 +00:00
|
|
|
.El
|
2005-01-17 07:44:44 +00:00
|
|
|
.Sh EXIT STATUS
|
2003-11-02 23:12:08 +00:00
|
|
|
The
|
2016-05-28 16:06:07 +00:00
|
|
|
.Nm md5 , sha1 , sha256 , sha512, sha512t256
|
2004-06-11 16:07:02 +00:00
|
|
|
and
|
|
|
|
.Nm rmd160
|
|
|
|
utilities exit 0 on success,
|
2011-11-13 16:35:47 +00:00
|
|
|
1 if at least one of the input files could not be read,
|
2014-05-18 21:16:59 +00:00
|
|
|
and 2 if at least one file does not have the same hash as the
|
|
|
|
.Fl c
|
|
|
|
option.
|
1997-03-02 21:43:10 +00:00
|
|
|
.Sh SEE ALSO
|
2004-06-11 16:07:02 +00:00
|
|
|
.Xr cksum 1 ,
|
|
|
|
.Xr md5 3 ,
|
|
|
|
.Xr ripemd 3 ,
|
2005-03-10 09:56:39 +00:00
|
|
|
.Xr sha 3 ,
|
2012-08-01 00:36:12 +00:00
|
|
|
.Xr sha256 3 ,
|
2015-12-27 17:33:59 +00:00
|
|
|
.Xr sha384 3 ,
|
2012-08-01 00:36:12 +00:00
|
|
|
.Xr sha512 3
|
1997-03-02 21:43:10 +00:00
|
|
|
.Rs
|
|
|
|
.%A R. Rivest
|
|
|
|
.%T The MD5 Message-Digest Algorithm
|
|
|
|
.%O RFC1321
|
|
|
|
.Re
|
2004-06-11 16:07:02 +00:00
|
|
|
.Rs
|
|
|
|
.%A J. Burrows
|
|
|
|
.%T The Secure Hash Standard
|
2005-03-10 09:56:39 +00:00
|
|
|
.%O FIPS PUB 180-2
|
2004-06-11 16:07:02 +00:00
|
|
|
.Re
|
|
|
|
.Rs
|
|
|
|
.%A D. Eastlake and P. Jones
|
|
|
|
.%T US Secure Hash Algorithm 1
|
|
|
|
.%O RFC 3174
|
|
|
|
.Re
|
|
|
|
.Pp
|
|
|
|
RIPEMD-160 is part of the ISO draft standard
|
|
|
|
.Qq ISO/IEC DIS 10118-3
|
|
|
|
on dedicated hash functions.
|
|
|
|
.Pp
|
|
|
|
Secure Hash Standard (SHS):
|
|
|
|
.Pa http://csrc.nist.gov/cryptval/shs.html .
|
|
|
|
.Pp
|
|
|
|
The RIPEMD-160 page:
|
|
|
|
.Pa http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html .
|
1998-07-06 07:04:50 +00:00
|
|
|
.Sh ACKNOWLEDGMENTS
|
1994-10-29 23:58:02 +00:00
|
|
|
This program is placed in the public domain for free general use by
|
|
|
|
RSA Data Security.
|
2004-06-11 16:07:02 +00:00
|
|
|
.Pp
|
|
|
|
Support for SHA-1 and RIPEMD-160 has been added by
|
2014-06-20 09:40:43 +00:00
|
|
|
.An Oliver Eikemeier Aq Mt eik@FreeBSD.org .
|