/vanityhash

Brute forcing hashes for fun and profit

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

vanityhash, a hex hash fragment creation tool
By Ryan Finnie <ryan@finnie.org>
http://www.finnie.org/software/vanityhash/

ABOUT

vanityhash is a tool that can discover data to be added to the end of a 
file to produce a desired hex hash fragment.  It searches a message 
space and runs a hashing algorithm against the original data plus the 
appended data to determine if the desired hash fragment is present.  
vanityhash can run multiple parallel workers to effectively make use of 
multiple processors/cores/threads, and supports multiple hash digest 
types (MD5, SHA1, SHA256, etc).

INSTALLATION

vanityhash requires Python 3.4 or newer, and no non-core Python moudules
(though it will use several if present, see below).

Digest support depends on the OpenSSL features used to compile hashlib.
Run `vanityhash --list-digests` to get a list of usable digests.  The
following may be available:

 * OpenSSL-provided (md5, sha1, sha256, etc)
 * xxHash, if the xxhash module is installed (xxh32, xxh64)
 * Additional digests (null, random, crc32, adler32, bsd, udp, 2ping)
   with the hashlib_additional module
   (https://pypi.org/project/hashlib-additional/)

To "build" and install vanityhash:

  make
  make install
  make clean

/usr/local is the default Makefile prefix, use PREFIX to override.

USAGE

Please see the man page for full details.

  vanityhash [options] hexfragment < inputfile

  vanityhash --append [options] hexfragment < inputfile > outputfile