Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
MD5(1)			  BSD General Commands Manual			MD5(1)

     md5, sha1,	sha224,	sha256,	sha384,	sha512,	sha512t256, rmd160, skein256,
     skein512, skein1024 -- calculate a	message-digest fingerprint (checksum)
     for a file

     md5 [-pqrtx] [-c string] [-s string] [file	...]

	 (All other hashes have	the same options and usage.)

     The md5, sha1, sha224, sha256, sha384, sha512, sha512t256,	rmd160,
     skein256, skein512, and skein1024 utilities take as input a message of
     arbitrary length and produce as output a "fingerprint" or "message
     digest" of	the input.  It is conjectured that it is computationally in-
     feasible to produce two messages having the same message digest, or to
     produce any message having	a given	prespecified target message digest.
     The SHA-224 , SHA-256 , SHA-384 , SHA-512,	RIPEMD-160, and	SKEIN algo-
     rithms are	intended for digital signature applications, where a large
     file must be "compressed" in a secure manner before being encrypted with
     a private (secret)	key under a public-key cryptosystem such as RSA.

     The MD5 and SHA-1 algorithms have been proven to be vulnerable to practi-
     cal collision attacks and should not be relied upon to produce unique
     outputs, nor should they be used as part of a cryptographic signature
     scheme. As	of 2017-03-02, there is	no publicly known method to reverse
     either algorithm, i.e., to	find an	input that produces a specific output.

     SHA-512t256 is a version of SHA-512 truncated to only 256 bits.  On
     64-bit hardware, this algorithm is	approximately 50% faster than SHA-256
     but with the same level of	security.  The hashes are not interchangeable.

     It	is recommended that all	new applications use SHA-512 or	SKEIN-512 in-
     stead of one of the other hash functions.

     The following options may be used in any combination and must precede any
     files named on the	command	line.  The hexadecimal checksum	of each	file
     listed on the command line	is printed after the options are processed.

     -c	string
	     Compare the digest	of the file against this string.  (Note	that
	     this option is not	yet useful if multiple files are specified.)

     -s	string
	     Print a checksum of the given string.

     -p	     Echo stdin	to stdout and append the checksum to stdout.

     -q	     Quiet mode	-- only	the checksum is	printed	out.  Overrides	the -r

     -r	     Reverses the format of the	output.	 This helps with visual	diffs.
	     Does nothing when combined	with the -ptx options.

     -t	     Run a built-in time trial.

     -x	     Run a built-in test script.

     The md5, sha1, sha224, sha256, sha512, sha512t256,	rmd160,	skein256,
     skein512, and skein1024 utilities exit 0 on success, 1 if at least	one of
     the input files could not be read,	and 2 if at least one file does	not
     have the same hash	as the -c option.

     Calculate the MD5 checksum	of the string "Hello".

	   $ md5 -s Hello
	   MD5 ("Hello") = 8b1a9953c4611296a827abf8c47804d7

     Same as above, but	note the absence of the	newline	character in the input

	   $ echo -n Hello | md5

     Calculate the checksum of multiple	files reversing	the output:

	   $ md5 -r /boot/loader.conf /etc/rc.conf
	   ada5f60f23af88ff95b8091d6d67bef6 /boot/loader.conf
	   d80bf36c332dc0fdc479366ec3fa44cd /etc/rc.conf

     Write the digest for /boot/loader.conf in a file named digest.  Then cal-
     culate the	checksum again and validate it against the checksum string ex-
     tracted from the digest file:

	   $ md5 /boot/loader.conf > digest && md5 -c $(cut -f2	-d= digest) /boot/loader.conf
	   MD5 (/boot/loader.conf) = ada5f60f23af88ff95b8091d6d67bef6

     Same as above but comparing the digest against an invalid string
     ("randomstring"), which results in	a failure.

	   $ md5 -c randomstring /boot/loader.conf
	   MD5 (/boot/loader.conf) = ada5f60f23af88ff95b8091d6d67bef6 [	Failed ]

     cksum(1), md5(3), ripemd(3), sha(3), sha256(3), sha384(3),	sha512(3),

     R.	Rivest,	The MD5	Message-Digest Algorithm, RFC1321.

     J.	Burrows, The Secure Hash Standard, FIPS	PUB 180-2.

     D.	Eastlake and P.	Jones, US Secure Hash Algorithm	1, RFC 3174.

     RIPEMD-160	is part	of the ISO draft standard "ISO/IEC DIS 10118-3"	on
     dedicated hash functions.

     Secure Hash Standard (SHS):

     The RIPEMD-160 page:

     This program is placed in the public domain for free general use by RSA
     Data Security.

     Support for SHA-1 and RIPEMD-160 has been added by	Oliver Eikemeier

BSD				 June 19, 2020				   BSD


Want to link to this manual page? Use this URL:

home | help