hashdig-make.pl - Create or update a HashDig database
hashdig-make.pl [-Fiqr] [-a hash-type] -d db file
[file ...]
This utility reads one or more HashDig files (see hashdig-harvest(1)) and
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:
hash|category
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 option is 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.
- -F
- Force the specified database to be truncated on open.
- -i
- 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
tracking.
- -q
- Don't report errors (i.e., be quiet) while processing files.
- -r
- 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
hashdig-dump(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.
hashdig-bash(1), hashdig-dump(1), hashdig-harvest(1),
hashdig-harvest-sunsolve(1), hashdig-weed(1)
All documentation and code are distributed under same terms and conditions as
FTimes.