File Hasher
Compute, verify, and compare file hashes. Supports all hashlib algorithms. Zero dependencies.
Quick Start
# Hash a file (SHA-256)
python3 scripts/file_hasher.py hash myfile.txt
# Verify a download
python3 scripts/file_hasher.py verify image.iso -e abc123def456...
# Compare two files
python3 scripts/file_hasher.py compare file1.txt file2.txt
Commands
hash
Compute file hash with one or more algorithms:
python3 scripts/file_hasher.py hash file.txt # SHA-256
python3 scripts/file_hasher.py hash file.txt -a md5 # MD5
python3 scripts/file_hasher.py hash file.txt -a md5,sha1,sha256 # Multiple
python3 scripts/file_hasher.py hash *.py --bsd # BSD format
python3 scripts/file_hasher.py hash data.bin --json # JSON output
verify
Check a file against an expected hash:
python3 scripts/file_hasher.py verify image.iso -e <expected_hash>
python3 scripts/file_hasher.py verify file.tar.gz -e <hash> -a sha512
Exit code 0 = match, 1 = mismatch.
check
Verify files from a checksum file (sha256sum/md5sum/BSD format):
python3 scripts/file_hasher.py check SHA256SUMS
python3 scripts/file_hasher.py check checksums.txt -a md5
Auto-detects algorithm from hash length and BSD format headers.
compare
Compare two files by hash:
python3 scripts/file_hasher.py compare original.bin copy.bin
python3 scripts/file_hasher.py compare a.txt b.txt -a md5
directory
Hash all files in a directory:
python3 scripts/file_hasher.py directory ./src # Top level
python3 scripts/file_hasher.py directory ./project -r # Recursive
python3 scripts/file_hasher.py directory ./dist -r --bsd -a md5 # BSD + MD5
string
Hash a text string directly:
python3 scripts/file_hasher.py string "hello world"
python3 scripts/file_hasher.py string "password" -a md5,sha256,sha512
algorithms
List all available hash algorithms:
python3 scripts/file_hasher.py algorithms