This is a simple command-line utility for generating signatures (hashes) of binary files. It processes the file in blocks and writes hash results to an output file.
- Multithreaded hashing with automatic thread count detection.
- Customizable block size (in bytes).
- Input/output file validation.
- Simple interface for CLI usage.
- MSVC 2017+
- Clang 6.5+
- GCC 8.1+
- Perl (non-direct dependency)
mbedtls/crypto/
(Should be added to compiler's headers path)
You need a C++ compiler that supports C++17 or newer. Make sure to include the following files in your build:
main.cpp
hashlib.h
and its implementationutils.h
and its implementation
Install Gtest library via vcpkg
cmake -G "Visual Studio 16" -DCMAKE_GENERATOR_PLATFORM=x64 ..
cd signature && mkdir build && cd build
cmake -G "Ninja" ..
ninja
./signature_tool <input_file> <output_hash_file> <block_size>
./signature_tool where_to_produce.bin output_signatures.txt 1234567
Memory usage: 64MB
- Buffer size limit.