hashdig-make.pl - Create or update a HashDig database
hashdig-make.pl [-Fiqr] [-a hash-type] -d db file
This utility reads one or more HashDig files (see hashdig-harvest
creates or updates the specified HashDig database. A HashDig database is an
ordered list of MD5 hashes -- each of which is tagged as known (K) or unknown
(U). HashDig databases are implemented as BTrees and constructed using Perl's
DB_File module. Enumerating these databases yields the following format:
HashDig stores and manipulates MD5 hashes as lowercase, hexadecimal strings. The
primary rule of engagement is that imported hash/category pairs trump existing
pairs in the database. This is true unless the pairs are identical. In that
case the existing pairs are not modified. If the -i
specified, imported pairs always trump existing pairs. HashDig files are
processed in command-line order. Typically, HashDig files that are sorted in
hash order yield much faster load times.
- -a hash-type
- Specifies the type of hashes that are to be processed. Currently, the
following hash types (or algorithms) are supported: 'MD5', 'SHA1', and
'SHA256'. The default hash type is that specified by the HASH_TYPE
environment variable or 'MD5' if HASH_TYPE is not set. The value for this
option is not case sensitive.
- -d db
- Specifies the name of the database to create or update.
- Force the specified database to be truncated on open.
- Always insert. If a hash already exists, its value is overwritten. This
option improves performance when the database is new or the -F
option has been specified. Enabling this option, however, disables update
- Don't report errors (i.e., be quiet) while processing files.
- Accept records in the reverse HashDig format (i.e., category|hash).
Databases created from the same input may yield different, but equivalent, DB
files. Further, these DB files may not be portable across different platforms
or operating systems. Therefore, the recommended method for exchanging or
verifying a HashDig database is to dump it to a HashDig file (see
(1)) and operate on that instead.
Take care to avoid mixing DB files that are based on different hash types. This
can be easy to do if you're not careful.
All documentation and code are distributed under same terms and conditions as