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

FreeBSD Manual Pages


home | help
RHASH(1)			 User Manuals			      RHASH(1)

       rhash - calculate/check CRC32, MD5, SHA1, GOST, TTH, BTIH or other mes-
       sage digests.

       rhash [ option ]... [ file ]...

       RHash (Recursive	Hasher)	computes and verifies various message  digests
       and  checksums  of  files.   Supported  hash  algorithms	include	CRC32,
       CRC32C, MD4, MD5, SHA1, SHA256, SHA512, SHA3, Tiger,  DC++  TTH,	 BTIH,
       AICH,  ED2K,  GOST  R  34.11-*,	RIPEMD-160,  HAS-160, BLAKE2s/BLAKE2b,
       EDON-R 256/512, Whirlpool, Snefru-128/256.

       The program can create and verify  Magnet  links	 and  eDonkey  ed2k://
       links, see --magnet and --ed2k-link options.

       A dash string parameter `-' is interpreted as the standard input	stream

       By default rhash	prints sums in SFV format with	CRC32  checksum	 only.
       The  format  can	 be  changed  by  options  --bsd,  --magnet, --simple,
       --printf, --template.  To output	all sums use the `-a' option.

       The default mode	is to print checksums  for  all	 files	and  directory
       trees specified by command line.	The mode can be	changed	by the follow-
       ing options.

       -c, --check
	      Check hash files specified by command  line.  RHash  can	verify
	      hash files in SFV	and BSD	formats, MD5 and SHA1 files format and
	      text files containing magnet or ed2k links (one link per	line).
	      Empty lines and lines starting with `;' or `#' are ignored.

	      RHash  can  verify  hash	files  generated  without --printf and
	      --template formatting options.

	      If the hash algorithm is not specified by	command	 line  options
	      then  RHash  tries to detect algorithm from the extension	of the
	      hash file.  If detection fails, then all hash  function  of  the
	      same  hash  length  are  calculated, and that significally slows
	      down files verification. To speed	up verification, in such case,
	      explicitly specify the hash algorithm in the command line.

       -u, --update=<hash-file>
	      Update  the  hash	file specified by the option.  Message digests
	      will be calculated for all files specified by the	 command  line
	      and  not	present	 in this hash file. The	calculated Message di-
	      gests will be appended to	the updated hash file  in  the	format
	      specified	 by  formatting	 options.   The	--update option	can be
	      combined with --recursive	to update a hash file for whole	direc-
	      tory  trees.  Also  --update  option can be used with --check to
	      verify the hash file before updating it.

       -k, --check-embedded
	      Verify files by crc32 sum	embedded in their names.

	      Create a torrent file for	each processed file.

       -h, --help
	      Help: print help screen and exit.

       -V, --version
	      Version: print version and exit.

       -B, --benchmark
	      Run benchmark for	the selected hash algorithm(s).

       -C, --crc32
	      CRC32: Select CRC32 checksum algorithm.

	      CRC32C: Select CRC32C checksum algorithm.

       --md4  MD4: Select MD4 hash function.

       -M, --md5
	      MD5: Select MD5 hash function.

       -H, --sha1
	      SHA1: Select SHA1	hash function.

       --sha224, --sha256, --sha384, --sha512
	      Select specified SHA2 hash function.

       --sha3-224, --sha3-256, --sha3-384, --sha3-512
	      Select specified SHA3 hash function.

	      Tiger: Select Tiger hash function.

       -T, --tth
	      TTH: Select DC++ TTH hash	function.

       --btih BTIH: Select BitTorrent Info Hash.

       -A, --aich
	      AICH: Select AICH	hash function.

       -E, --ed2k
	      ED2K: Select eDonkey 2000	hash function.

       -L, --ed2k-link
	      eDonkey link: calculate and print	eDonkey	link.

       -W, --whirlpool
	      Whirlpool: Select	Whirlpool hash function.

       -G, --gost12-256
	      GOST-2012: Select	256-bit	GOST R 34.11-2012,  the	 Russian  GOST
	      standard hash function.

	      GOST-2012:  Select  512-bit  GOST	R 34.11-2012, the Russian GOST
	      standard hash function.

	      GOST-94: Select GOST R 34.11-94,	the  deprecated	 Russian  hash

	      GOST-94-CRYPTOPRO:  Select  the  CryptoPro version of the	depre-
	      cated Russian GOST R 34.11-94 hash function.

	      RIPEMD-160: Select RIPEMD-160 hash function.

	      HAS-160: Select HAS-160 hash function.

       --snefru128, --snefru256
	      SNEFRU: Select SNEFRU-128/256 hash function.

       --edonr256, --edonr512
	      EDON-R: Select EDON-R 256/512 hash function.

       --blake2b, --blake2s
	      BLAKE2: Select BLAKE2b/BLAKE2s hash function.

       -a, --all
	      Calculate	all supported hash functions.

	      List names of all	supported hash functions, one per line.

       -r, --recursive
	      Recursively process directories, specified by command line.

	      Follow symbolic links when processing files or  directories  re-

       -m, --message=<text>
	      Calculate	message	digests	of the given text message.

	      Process given file as a file-list. Lines of this file are	inter-
	      preted as	paths to files to be processed.	 Multiple  file	 lists
	      can be specified at command line.

       -v, --verbose
	      Be verbose.

	      Print  brief  form  of verification report (without a header and
	      footer), when verifying a	hash file.

       -P, --percents
	      Show percents, while calculating or checking sums

	      Don't print OK messages for successfully verified	files.

       -i, --ignore-missing
	      Ignore missing files, while verifying a hash file.

       -i, --ignore-case
	      Ignore case of filenames when updating crc files.

	      Print per-file and the total processing speed.

       -e, --embed-crc
	      Rename files by inserting	crc32 sum into name.

	      Insert specified <delimiter> before a crc	sum in the --embed-crc
	      mode, default is white space. The	<delimiter> can	be a character
	      or empty string.

	      Use specified path separator to display paths.

       -q, --accept=<list>
	      Set a  comma-delimited  list  of	extensions  of	the  files  to

	      Set a comma-delimited list of extensions of the files to exclude
	      from processing.

       -t, --crc-accept=<list>
	      Set a comma-delimited list of extensions of the  hash  files  to

	      Descend  at most <levels>	(a non-negative	integer) levels	of di-
	      rectories	below the command line arguments. `--maxdepth 0' means
	      only apply the tests and actions to the command line arguments.

       -o, --output=<file-path>
	      Set  the	file to	output calculated message digests or verifica-
	      tion results to.

       -l, --log=<file-path>
	      Set the file to log errors and verbose information to.

	      Specify which hash functions  should  be	calculated  using  the
	      OpenSSL  library.	  The <list> is	a comma	delimited list of hash
	      function names, but only those supported by openssl are allowed:
	      md4, md5,	sha1, sha2*, ripemd160 and whirlpool.

	      Reverse  bytes  in  hexadecimal output of	a GOST hash functions.
	      The most significant byte	of the message digest will be  printed
	      first.  Default order is the least significant byte first.

	      Turn  on	torrent	 batch mode (implies torrent mode). Calculates
	      batch-torrent for	the files specified at command line and	 saves
	      the torrent file to the file-path. The option -r <directory> can
	      be useful	in this	mode.

	      Generate torrent file or BTIH for	a private BitTorrent tracker.

	      Generate torrent file or BTIH compatible with Transmission  tor-
	      rent client.

	      Set the piece length value for torrent file.

	      Add a tracker announce URL to the	created	torrent	file(s).  Sev-
	      eral URLs	can be	passed	by  specifying	the  option  mutltiple
	      times.  This option doesn't change the BTIH message digest.

	      Switch  benchmark	output format to be a machine-readable tab-de-
	      limited text with	hash function  name,  speed,  cpu  clocks  per
	      byte.   This  option  works  only	 if the	--benchmark option was

	      Do not detect hash function by an	extension of hash file,	in the
	      --check mode.

	      Turn  off	 escape	 characters  in	 file paths. The option	can be
	      specified	in the default,	check or update	modes.

       -- (double dash)
	      Mark the end of command line options. All	 parameters  following
	      the  double  dash	are interpreted	as files or directories. It is
	      typically	used to	process	filenames starting with	 a  dash  `-'.
	      Alternatively  you  can  specify	'./'  or full path before such
	      files, so	they will not look like	options	anymore.

       --sfv  Print message digests in the SFV (Simple File Verification) out-
	      put  format  (default).	But  unlike  common SFV	file, not only
	      CRC32, but any message  digests  specified  by  options  can  be

       -g, --magnet
	      Print message digests formatted as magnet	links.

       --bsd  Use BSD output format. Each message digest is printed on a sepa-
	      rate line	after hash function name and file's path, enclosed  in

	      Use simple output	format.	Each line will consist of filename and
	      message digests specified	by options.

       --hex  Print message digests in hexadecimal format.

	      Print message digests in Base32 format.

       -b, --base64
	      Print message digests in Base64 format.

	      Print message digests in upper case.

	      Print message digests in lower case.

	      Read printf-like template	from given <file>.  See	 the  --printf

       -p, --printf=<format>
	      Format:  print  format  string the standard output, interpreting
	      `\' escapes and `%' directives. The escapes and directives are:

	      \n     Newline.

	      \r     Carriage return.

	      \t     Horizontal	tab.

	      \\     A literal backslash (`\').

	      \0     ASCII NUL.

	      \NNN   The character which octal ASCII code is NNN.

	      \xNN   The character which hexadecimal ASCII code	is NN.

	      A	`\' character followed by any other character is treated as an
	      ordinary character, so they both are printed.

	      %%     A literal percent sign.

	      %p     File's path.

	      %f     File's name.

	      %u or %U
		     Prefix  used to print a filename, file path or base64/raw
		     message digest as an  URL-encoded	string.	 For  example:
		     `%uf',  `%up',  `%uBm', `%u@h'.  Use %u for lowercase and
		     %U	for uppercase characters.

	      %s     File's size in bytes.

		     File's last modification time.

	      %a or %A
		     AICH message digest.

	      %c or %C
		     CRC32 checksum.  Use %c for lowercase and %C  for	upper-
		     case characters.

	      %g or %G
		     GOST R 34.11-2012 256-bit message digest.

	      %h or %H
		     SHA1 message digest.

	      %e or %E
		     ED2K message digest.

	      %l or %L
		     EDonkey ed2k://...	link.

	      %m or %M
		     MD5 message digest.

	      %r or %R
		     RIPEMD-160	message	digest.

	      %t or %T
		     TTH message digest.

	      %w or %W
		     Whirlpool message digest.

	      %{crc32},	 %{crc32c}, %{md4}, %{md5}, %{sha1}, %{tiger}, %{tth},
	      %{btih},	 %{ed2k},   %{aich},	%{whirlpool},	 %{ripemd160},
	      %{has160},    %{gost94},	 %{gost94-cryptopro},	%{gost12-256},
	      %{gost12-512}, %{sha-224}, %{sha-256},  %{sha-384},  %{sha-512},
	      %{sha3-224},	%{sha3-256},	 %{sha3-384},	  %{sha3-512},
	      %{edon-r256},  %{edon-r512},  %{blake2s},	  %{blake2b},	%{sne-
	      fru128}, %{snefru256}
		     Print  the	specified message digest. It is	printed	in up-
		     percase, if the hash function name	starts with a  capital
		     letter, e.g. %{TTH}, %{Sha-512}.

	      %x<hash>,	%b<hash>, %B<hash>, %@<hash>
		     Use  one  of these	prefixes to output a message digest in
		     hexadecimal, base32, base64 or raw	 (binary)  format  re-
		     spectively, e.g. %b{md4}, %BH or %xT.

       The  default  output format can also be changed by renaming the program
       or placing a hardlink/symlink to	it with	a filename containing  strings
       `crc32',	 `crc32c',  `md4',  `md5', `sha1', `sha224' `sha256', `sha384'
       `sha512',  `sha3-256',  `sha3-512',  `sha3-224',	 `sha3-384',  `tiger',
       `tth', `btih', `aich', `ed2k', `ed2k-link', `gost12-256', `gost12-512',
       `gost94',   `gost94-cryptopro',	 `rmd160',   `has160',	  `whirlpool',
       `edonr256', `edonr512', `blake2s', `blake2b', `snefru128', `snefru256',
       `sfv' , `bsd' or	`magnet'.

       RHash  looks  for  a  config  file  at  $XDG_CONFIG_HOME/rhash/rhashrc,
       $HOME/.config/rhash/rhashrc,	       $XDG_CONFIG_DIRS/rhash/rhashrc,
       $HOME/.rhashrc and /etc/rhashrc.

       The config file consists	of lines formatted as
	      variable = value

       where the variable can be a name	of any command line option, like  mag-
       net, printf, percents, etc.  A boolean variable can be set to true by a
       value `on', `yes' or `true', any	 other	value  sets  the  variable  to

       Empty lines and lines starting with `#' or `;' are ignored.

       Example config file:
       # This is a comment line
       percents	= on
       crc-accept = .sfv,.md5,.sha1,.sha256,.sha512,.tth,.magnet

       Aleksey Kravchenko <>

       md5sum(1) cksfv(1) ed2k_hash(1)

       Bug  reports  are  welcome!   Post  them	 to  the  GitHub  issues  page

Linux				   APR 2010			      RHASH(1)


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

home | help