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