Skip to main content

🔐 Hash Auditor

Hash Auditor

Audit your passwords. Hash them. Identify hashes. Crack your own.

Python License PyPI Platform

"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), incremental brute with 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

Architecture

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.

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)

Source distribution for hash-auditor 0.2.0
File Size Uploaded
hash_auditor-0.2.0.tar.gz 118.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hash-auditor 0.2.0
File Interpreter ABI Platform
hash_auditor-0.2.0-py3-none-any.whl Python 3 none any Details

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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page