🔐 Hash Auditor
Audit your passwords. Hash them. Identify hashes. Crack your own.
"The password is the lock. Most people use a paper clip."
What is it?
A pocket knife for password hygiene: measure how weak your passwords really are, compute hashes in common formats, identify a hash's algorithm from its length, and brute-force your own hashes with a wordlist and common mutations. Every cracked hash in your lab is a story your novel's hacker would tell with a smirk.
Features
Core
- 📏
check— length, character classes, entropy, weak-list, patterns, verdict - 🔑
hash— md5, sha1, sha256, sha512 - 🕵️
identify— guess the algorithm from hash length - 💥
crack— wordlist attack with mutations (Cap1tals,+123,+!, ...)
v0.2.0 — the cracking-lab expansion
- 🧬
audit— integrated risk audit: strength + breach exposure + leet + date + keyboard-walk + randomness, folded into one 0-100 risk score - 🎯
recognize— ranked hash-format identification with confidence scores (bcrypt, argon2, scrypt, PBKDF2, Django, phpass, LDAP, MySQL, ...) - 🌈
rainbow— build, save and query real rainbow tables (reduction chains) - 🎭
mask— hashcat-style mask attacks (?l?d?s, custom charsets) with keyspace/entropy/time estimates - 🔀
combine— combinator and hybrid word+mask attacks - 🧩
pcfg— probabilistic context-free grammar guesses in probability order - 📚
breach— simulated breach-corpus exposure scoring (Zipf-ranked) - 📜
policy— configurable password policies with presets (basic/corporate/NIST) - 🔄
history— password-rotation enforcement (reuse, similarity, mutation gates) - 🎲
generate— diceware, syllable, leet and PIN generators with entropy - 📊
stats— wordlist statistics incl. Zipf-exponent fit and Markov bigrams - 🔗
similarity— edit distance, mutation classification, clustering - ⌨️
keyboard— QWERTY walk generation and detection - 📅
dates— date-fragment extraction and date-password detection - 🔤
fingerprint— structural shape fingerprints (Password123!→ULDS) - 🧮
entropy— Shannon, chi-squared, Markov and effective-bit analysis - 🗂️
parse— hash-dump parsing (user:hash, CSV, salted) → hashcat format - ➕ pure-Python
checksums(CRC32/CRC16/Adler-32/FNV/Luhn), incrementalbrutewith checkpoint/resume, leet-reversal dictionary matching, and wordlist pipeline tools - 📦 Zero dependencies
Install
pip install hash-auditor
From source:
git clone https://github.com/AnonymoDGH/hash-auditor
cd hash-auditor
pip install -e .
Quickstart
# 1. Audit a password
hashaudit check "password123"
# [*] length: 11
# [*] character classes:2
# [*] entropy (approx): 51.5 bits
# [-] in the known-weak list
# [-] verdict: weak
# 2. Hash something
hashaudit hash --algo md5 "sunshine"
# 3e1d2e2e1e7c7a1c5e2d8f6f1c2e3d4a (fake value — compute your own)
# 3. Identify a hash by its length
hashaudit identify 5d41402abc4b2a76b9719d911017c592
# md5
# 4. Crack your own hash with a wordlist
hashaudit crack --hash 5d41402abc4b2a76b9719d911017c592 --wordlist rockyou.txt
# [+] FOUND: 'hello'
# 5. v0.2.0: integrated risk audit
hashaudit audit "Summer2024!"
# [*] risk score: 87/100 -> critical
# [-] issues:
# - found in breach corpus ...
# 6. v0.2.0: identify a hash format with confidence
hashaudit recognize '$2b$12$...'
# 1. bcrypt (confidence: 0.97) -- bcrypt revision 'b'; cost factor 12
# 7. v0.2.0: mask attack on your own hash
hashaudit mask '?d?d?d?d' --hash <md5-of-a-pin>
# [+] FOUND: '1234' after 1,235 attempts
CLI reference
| Command | What it does |
|---|---|
hashaudit check <password> |
Full audit report |
hashaudit hash <password> --algo <a> |
Compute a hash |
hashaudit identify <hex> |
Guess algorithm from length |
hashaudit crack --hash <hex> --wordlist <f> [--algo <a>] |
Brute-force with mutations |
hashaudit crack --nomutate |
Skip mutation candidates |
hashaudit audit <password> / --file <f> |
Integrated risk audit (0-100 score) |
hashaudit recognize <hash> |
Ranked hash-format identification |
hashaudit rainbow --table <f> [--lookup <md5>] |
Build / query a rainbow table |
hashaudit mask <mask> --info / --hash <hex> |
Mask attack or keyspace info |
hashaudit combine --wordlist <f> --mode <m> |
Combinator / hybrid attack |
hashaudit pcfg --count <n> |
PCFG guesses in probability order |
hashaudit breach <password> / --file <f> |
Breach-corpus exposure score |
hashaudit policy <password> [--preset <p>] |
Policy check (basic/corporate/nist) |
hashaudit history <new> --file <f> |
Rotation-policy check vs history |
hashaudit generate --scheme <s> |
diceware / syllable / leet / pin |
hashaudit stats --file <f> |
Wordlist statistics + Zipf fit |
hashaudit similarity <old> <new> |
How two passwords are related |
hashaudit entropy <password> |
Deep randomness analysis |
hashaudit parse --file <f> [--hashcat] |
Parse a hash dump |
How it works
Tests
pip install pytest
pytest
License
MIT — audit your own habits, crack your own hashes, and keep the villain's password cracking on the page.
Metadata
Release files for hash-auditor 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| hash_auditor-0.2.0.tar.gz | 118.4 kB | Without provenance | Details for hash_auditor-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| hash_auditor-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for hash_auditor-0.2.0-py3-none-any.whl |
Total release size: 215.2 kB
Release files / hash_auditor-0.2.0.tar.gz
| Download URL | hash_auditor-0.2.0.tar.gz |
|---|---|
| Size | 118.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
368cb61938f7c85be938d6cfb16fe21913ae6979e1c8b8c51a880b6ac74f1cd9
|
|
BLAKE2b-256 checksum How to use checksums |
ad90ad88b6be306f1b28dd8776a58e14a5f883bfc4b7675b448c9f14f973e949
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|
Release files / hash_auditor-0.2.0-py3-none-any.whl
| Download URL | hash_auditor-0.2.0-py3-none-any.whl |
|---|---|
| Size | 96.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0e5ec18ca9557fa85bd7ca6fd2956e056de92a1882c99dbbed7216a087f94f35
|
|
BLAKE2b-256 checksum How to use checksums |
2a8e0a327a2a20b17e221ac683ef4959c02eed5d8815133399983349146d6053
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|
Security for hash-auditor 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.