Skip to main content

Hashsmith CLI for encoding, decoding, hashing, and cracking

Project description

 _   _           _     ____            _ _   _
| | | | __ _ ___| |__ / ___| _ __ ___ (_) |_| |__
| |_| |/ _` / __| '_ \\___ \| '_ ` _ \| | __| '_ \
|  _  | (_| \__ \ | | |___) | | | | | | | |_| | | |
|_| |_|\__,_|___/_| |_|____/|_| |_| |_|_|\__|_| |_|

Hashsmith

Hashsmith is a modular, terminal-first toolkit for encoding, decoding, hashing, cracking, and identification. It’s designed for security-focused workflows, quick experiments, and automation in scripts or pipelines.

Highlights ⚡

  • Clean CLI with guided interactive mode
  • Extensive encoding/decoding support (base* formats, morse, url, classical ciphers, and more)
  • Modern hash support (MD5/SHA/NTLM/Bcrypt/Argon2/Scrypt, etc.)
  • Identify mode for best-guess detection of encoding and hash types
  • File input/output and clipboard copy support
  • Themed UI with Rich

Installation 🔐

From source

pip install -r requirements.txt

Run as module

python -m hashsmith --help

Quick Start ⚡

hashsmith encode -t base64 -i "hello"
hashsmith decode -t base64 -i "aGVsbG8="
hashsmith hash -t sha256 -i "secret" -c
hashsmith identify -i "aGVsbG8="

Global Options 🛡️

  • -N, --no-banner: Disable banner
  • -T, --theme: Accent color (cyan, green, magenta, blue, yellow, red, white)
  • -A, --help-all: Show help for all commands
  • -id, --identify: Shortcut for identify (use with -i/-f)

Common Input/Output Options 🧬

These options are shared across commands that accept input and output:

  • -i, --text: Text input
  • -f, --file: Read input from file
  • -o, --out: Write output to file
  • -c, --copy: Copy output to clipboard

Commands 🛡️

1) Encode

Encode text with a selected algorithm.

Usage

hashsmith encode -t <type> [-i <text> | -f <file>] [-o <file>] [-c]

Examples

hashsmith encode -t base64 -i "hello"
hashsmith encode -t caesar -s 5 -f input.txt -o output.txt
hashsmith encode -t hex -i "hello" -c

2) Decode

Decode text with a selected algorithm.

Usage

hashsmith decode -t <type> [-i <text> | -f <file>] [-o <file>] [-c]

Examples

hashsmith decode -t base64 -i "aGVsbG8="
hashsmith decode -t morse -i ".... . .-.. .-.. ---"
hashsmith decode -t hex -i "68656c6c6f" -c

3) Hash

Hash text using a selected algorithm.

Usage

hashsmith hash -t <type> [-i <text> | -f <file>] [--salt <s>] [--salt-mode prefix|suffix] [-o <file>] [-c]

Examples

hashsmith hash -t sha256 -i "hello"
hashsmith hash -t md5 -i "secret" -s "pepper" -S suffix
hashsmith hash -t sha256 -i "hello" -c

4) Crack

Crack hashes using dictionary or brute-force attacks.

Usage

hashsmith crack -t <type|auto> -H <hash> -M <dict|brute> [options]

Examples

hashsmith crack -t md5 -H 5f4dcc3b5aa765d61d8327deb882cf99 -M dict -w wordlists/common.txt
hashsmith crack -t sha1 -H 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed -M brute -n 1 -x 4
hashsmith crack -t md5 -H 5f4dcc3b5aa765d61d8327deb882cf99 -M dict -w wordlists/common.txt -c

5) Identify

Detect probable encoding and hash types. Prioritizes reliable results and avoids false positives for raw text.

Usage

hashsmith identify -i <text>
hashsmith identify -f <file>
hashsmith -id -i <text>

Examples

hashsmith identify -i "aGVsbG8="
hashsmith identify -i 5f4dcc3b5aa765d61d8327deb882cf99
hashsmith -id -i "aGVsbG8="

6) Interactive Mode

Guided prompt flow for encoding/decoding/hashing/cracking/identify.

Usage

hashsmith
hashsmith interactive

Algorithms 🔐

Hashing Algorithms

Category Algorithms
Cryptographic md5, md4, sha1, sha224, sha256, sha384, sha512, sha3_224, sha3_256, sha3_512
Modern/Alt blake2b, blake2s, ntlm, mysql323, mysql41
Password bcrypt, argon2, scrypt, mssql2000, mssql2005, mssql2012, postgres

Encoding/Decoding Algorithms

Category Algorithms
Base Encodings base64, base64url, base32, base85, base58
Numeric hex, binary, decimal, octal
Text/URL morse, url, unicode
Ciphers caesar, rot13, vigenere, xor, atbash, baconian, leet, reverse, railfence, polybius
Esoteric brainf*ck

Cracking Modes

Mode Description
dict Dictionary attack using a wordlist
brute Brute-force with a chosen charset and length range

Clipboard Support 🔐

When -c/--copy is set, output is copied to the clipboard using platform-native tools:

  • macOS: pbcopy
  • Windows: clip
  • Linux: xclip, xsel, or wl-copy

Themes 🛡️

Set the accent color globally:

hashsmith -T magenta

Troubleshooting 🧬

  • If hashing output in base58 fails, ensure the hash is hex-based.
  • For dictionary cracking, validate your wordlist path.

Security Notice 🛡️

Hashsmith is intended for educational and authorized security testing only. You are responsible for compliance with applicable laws.

License

See LICENSE. Hashsmith is a modular, terminal-based Swiss Army knife for encoding, decoding, hashing, and password cracking. Built for security enthusiasts 🛠️🔐

Features

  • Encoding/Decoding: Base64, Hex, Binary, Morse, URL, Caesar, ROT13
  • Hashing: MD5, SHA-1, SHA-256, SHA-512
  • Cracking: Dictionary attack and basic brute-force
  • File input/output support
  • Optional salt support for hashing and cracking

Installation

  1. Create a virtual environment (optional)
  2. Install dependencies:
pip install -r requirements.txt

Usage

Run via module:

python -m hashsmith --help

Encode

python -m hashsmith encode --type base64 --text "hello"
python -m hashsmith encode --type caesar --shift 5 --file input.txt --out output.txt
python -m hashsmith encode --type hex --text "hello" --copy

Decode

python -m hashsmith decode --type base64 --text "aGVsbG8="
python -m hashsmith decode --type morse --text ".... . .-.. .-.. ---"
python -m hashsmith decode --type hex --text "68656c6c6f" --copy

Hash

python -m hashsmith hash --type sha256 --text "hello"
python -m hashsmith hash --type md5 --text "secret" --salt "pepper" --salt-mode suffix
python -m hashsmith hash --type sha256 --text "hello" --copy

Crack

python -m hashsmith crack --type md5 --hash 5f4dcc3b5aa765d61d8327deb882cf99 --mode dict --wordlist wordlists/common.txt
python -m hashsmith crack --type sha1 --hash 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed --mode brute --min-len 1 --max-len 4
python -m hashsmith crack --type md5 --hash 5f4dcc3b5aa765d61d8327deb882cf99 --mode dict --wordlist wordlists/common.txt --copy

Notes

  • Dictionary cracking uses the provided wordlist file.
  • Brute-force is intentionally small by default; adjust --min-len and --max-len carefully.

Roadmap

  • Multithreading for cracking
  • Additional encodings and hash types
  • Better progress indicators

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hashsmith_cli-0.1.1.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hashsmith_cli-0.1.1-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file hashsmith_cli-0.1.1.tar.gz.

File metadata

  • Download URL: hashsmith_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for hashsmith_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 400836c2a82c27897d494bfdf8290ce610c85add461f7bc2d99c92b641f6c0c3
MD5 ea0d221fae62c53d08eeb3c89dc7ca4c
BLAKE2b-256 3db907d61de6a04e59de0a0c2702ede06f17895d02bfbb7260b2383384a960f6

See more details on using hashes here.

File details

Details for the file hashsmith_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: hashsmith_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for hashsmith_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f008338c8cfdc7abbf6ed1729e115a9a140745e85a2deeeda9c50577f80d3871
MD5 2c7df31b44078b3fc9fe75eae093ace1
BLAKE2b-256 0fe40a80d315ec0ead10ccbc944cef9aee70b65a96d164e31d48ca590cb7e8ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page