Provided by: rhash_1.4.2-1ubuntu1_amd64 bug

NAME

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

SYNOPSIS

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

DESCRIPTION

       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 (stdin).

       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.

PROGRAM MODE OPTIONS

       The  default  mode is to print checksums for all files and directory trees specified by command line. The
       mode can be changed by the following 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.   Checksums  will be calculated for all files
              specified by command and not present in this hash file. The calculated checksums will be  appended
              to  the  updated  hash  file  in  the  format specified by formatting options.  This option can be
              combined with --recursive, to update a hash file for whole directory trees.

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

       --torrent
              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).

HASH ALGORITHMS OPTIONS

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

       --crc32c
              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
              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.

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

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

       --gost94-cryptopro
              GOST-94-CRYPTOPRO: Select the CryptoPro version of the deprecated Russian  GOST  R  34.11-94  hash
              function.

       --ripemd160
              RIPEMD-160: Select RIPEMD-160 hash function.

       --has160
              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-hashes
              List names of all supported hash functions, one per line.

MISCELLANEOUS OPTIONS

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

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

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

       --follow
              Follow symbolic links when processing files or directories recursively.

       -v, --verbose
              Be verbose.

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

       --skip-ok
              Don't print OK messages for successfully verified files.

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

       --speed
              Print per-file and the total processing speed.

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

       --embed-crc-delimiter=<delimiter>
              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.

       --path-separator=<separator>
              Use specified path separator to display paths.

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

       --exclude=<list>
              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 verify.

       --maxdepth=<levels>
              Descend  at  most  <levels>  (a non‐negative integer) levels of directories 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 verification results to.

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

       --openssl=<list>
              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.

       --gost-reverse
              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.

       --bt-batch=<file-path>
              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.

       --bt-private
              Generate BTIH for a private BitTorrent tracker.

       --bt-piece-length
              Set the piece length value for torrent file.

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

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

       --no-detect-by-ext
              Disable hash function detection from a hash file extension in the --check mode.

       -- (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.

OUTPUT FORMAT OPTIONS

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

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

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

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

       --hex  Print message digests in hexadecimal format.

       --base32
              Print message digests in Base32 format.

       --base64
              Print message digests in Base64 format.

       --uppercase
              Print message digests in upper case.

       --lowercase
              Print message digests in lower case.

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

       -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.

              %{mtime}
                     File's last modification time.

              %a or %A
                     AICH message digest.

              %c or %C
                     CRC32 checksum.  Use %c for lowercase and %C for uppercase 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},   %{snefru128},
              %{snefru256}
                     Print  the  specified message digest. It is printed in uppercase, 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 respectively, 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'.

CONFIG FILE

       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  magnet,  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 false.

       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

AUTHOR

       Aleksey Kravchenko <rhash.admin@gmail.com>

SEE ALSO

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

BUGS

       Bug reports are welcome!  Post them to the GitHub issues page https://github.com/rhash/RHash/issues