hashsmith-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,272 @@
1
+ Metadata-Version: 2.4
2
+ Name: hashsmith-cli
3
+ Version: 0.1.0
4
+ Summary: Hashsmith CLI for encoding, decoding, hashing, and cracking
5
+ Home-page: https://github.com/salihsefer36/Hashsmith
6
+ Author: Salih Sefer
7
+ License: MIT
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: rich>=13.7.0
12
+ Requires-Dist: pyperclip>=1.8.2
13
+ Requires-Dist: bcrypt>=4.1.2
14
+ Requires-Dist: argon2-cffi>=23.1.0
15
+ Dynamic: license-file
16
+
17
+ ```
18
+ _ _ _ ____ _ _ _
19
+ | | | | __ _ ___| |__ / ___| _ __ ___ (_) |_| |__
20
+ | |_| |/ _` / __| '_ \\___ \| '_ ` _ \| | __| '_ \
21
+ | _ | (_| \__ \ | | |___) | | | | | | | |_| | | |
22
+ |_| |_|\__,_|___/_| |_|____/|_| |_| |_|_|\__|_| |_|
23
+ ```
24
+
25
+ # Hashsmith
26
+
27
+ 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.
28
+
29
+ ## Highlights ⚡
30
+ - Clean CLI with guided interactive mode
31
+ - Extensive encoding/decoding support (base* formats, morse, url, classical ciphers, and more)
32
+ - Modern hash support (MD5/SHA/NTLM/Bcrypt/Argon2/Scrypt, etc.)
33
+ - Identify mode for best-guess detection of encoding and hash types
34
+ - File input/output and clipboard copy support
35
+ - Themed UI with Rich
36
+
37
+ ## Installation 🔐
38
+
39
+ **From source**
40
+ ```bash
41
+ pip install -r requirements.txt
42
+ ```
43
+
44
+ **Run as module**
45
+ ```bash
46
+ python -m hashsmith --help
47
+ ```
48
+
49
+ ## Quick Start ⚡
50
+ ```bash
51
+ hashsmith encode -t base64 -i "hello"
52
+ hashsmith decode -t base64 -i "aGVsbG8="
53
+ hashsmith hash -t sha256 -i "secret" -c
54
+ hashsmith identify -i "aGVsbG8="
55
+ ```
56
+
57
+ ## Global Options 🛡️
58
+ - `-N`, `--no-banner`: Disable banner
59
+ - `-T`, `--theme`: Accent color (cyan, green, magenta, blue, yellow, red, white)
60
+ - `-A`, `--help-all`: Show help for all commands
61
+ - `-id`, `--identify`: Shortcut for identify (use with `-i/-f`)
62
+
63
+ ## Common Input/Output Options 🧬
64
+ These options are shared across commands that accept input and output:
65
+ - `-i`, `--text`: Text input
66
+ - `-f`, `--file`: Read input from file
67
+ - `-o`, `--out`: Write output to file
68
+ - `-c`, `--copy`: Copy output to clipboard
69
+
70
+ ## Commands 🛡️
71
+
72
+ ### 1) Encode
73
+ Encode text with a selected algorithm.
74
+
75
+ **Usage**
76
+ ```bash
77
+ hashsmith encode -t <type> [-i <text> | -f <file>] [-o <file>] [-c]
78
+ ```
79
+
80
+ **Examples**
81
+ ```bash
82
+ hashsmith encode -t base64 -i "hello"
83
+ hashsmith encode -t caesar -s 5 -f input.txt -o output.txt
84
+ hashsmith encode -t hex -i "hello" -c
85
+ ```
86
+
87
+ ---
88
+
89
+ ### 2) Decode
90
+ Decode text with a selected algorithm.
91
+
92
+ **Usage**
93
+ ```bash
94
+ hashsmith decode -t <type> [-i <text> | -f <file>] [-o <file>] [-c]
95
+ ```
96
+
97
+ **Examples**
98
+ ```bash
99
+ hashsmith decode -t base64 -i "aGVsbG8="
100
+ hashsmith decode -t morse -i ".... . .-.. .-.. ---"
101
+ hashsmith decode -t hex -i "68656c6c6f" -c
102
+ ```
103
+
104
+ ---
105
+
106
+ ### 3) Hash
107
+ Hash text using a selected algorithm.
108
+
109
+ **Usage**
110
+ ```bash
111
+ hashsmith hash -t <type> [-i <text> | -f <file>] [--salt <s>] [--salt-mode prefix|suffix] [-o <file>] [-c]
112
+ ```
113
+
114
+ **Examples**
115
+ ```bash
116
+ hashsmith hash -t sha256 -i "hello"
117
+ hashsmith hash -t md5 -i "secret" -s "pepper" -S suffix
118
+ hashsmith hash -t sha256 -i "hello" -c
119
+ ```
120
+
121
+ ---
122
+
123
+ ### 4) Crack
124
+ Crack hashes using dictionary or brute-force attacks.
125
+
126
+ **Usage**
127
+ ```bash
128
+ hashsmith crack -t <type|auto> -H <hash> -M <dict|brute> [options]
129
+ ```
130
+
131
+ **Examples**
132
+ ```bash
133
+ hashsmith crack -t md5 -H 5f4dcc3b5aa765d61d8327deb882cf99 -M dict -w wordlists/common.txt
134
+ hashsmith crack -t sha1 -H 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed -M brute -n 1 -x 4
135
+ hashsmith crack -t md5 -H 5f4dcc3b5aa765d61d8327deb882cf99 -M dict -w wordlists/common.txt -c
136
+ ```
137
+
138
+ ---
139
+
140
+ ### 5) Identify
141
+ Detect probable encoding and hash types. Prioritizes reliable results and avoids false positives for raw text.
142
+
143
+ **Usage**
144
+ ```bash
145
+ hashsmith identify -i <text>
146
+ hashsmith identify -f <file>
147
+ hashsmith -id -i <text>
148
+ ```
149
+
150
+ **Examples**
151
+ ```bash
152
+ hashsmith identify -i "aGVsbG8="
153
+ hashsmith identify -i 5f4dcc3b5aa765d61d8327deb882cf99
154
+ hashsmith -id -i "aGVsbG8="
155
+ ```
156
+
157
+ ---
158
+
159
+ ### 6) Interactive Mode
160
+ Guided prompt flow for encoding/decoding/hashing/cracking/identify.
161
+
162
+ **Usage**
163
+ ```bash
164
+ hashsmith
165
+ hashsmith interactive
166
+ ```
167
+
168
+ ## Algorithms 🔐
169
+
170
+ ### Hashing Algorithms
171
+ | Category | Algorithms |
172
+ | --- | --- |
173
+ | Cryptographic | md5, md4, sha1, sha224, sha256, sha384, sha512, sha3_224, sha3_256, sha3_512 |
174
+ | Modern/Alt | blake2b, blake2s, ntlm, mysql323, mysql41 |
175
+ | Password | bcrypt, argon2, scrypt, mssql2000, mssql2005, mssql2012, postgres |
176
+
177
+ ### Encoding/Decoding Algorithms
178
+ | Category | Algorithms |
179
+ | --- | --- |
180
+ | Base Encodings | base64, base64url, base32, base85, base58 |
181
+ | Numeric | hex, binary, decimal, octal |
182
+ | Text/URL | morse, url, unicode |
183
+ | Ciphers | caesar, rot13, vigenere, xor, atbash, baconian, leet, reverse, railfence, polybius |
184
+ | Esoteric | brainf*ck |
185
+
186
+ ### Cracking Modes
187
+ | Mode | Description |
188
+ | --- | --- |
189
+ | dict | Dictionary attack using a wordlist |
190
+ | brute | Brute-force with a chosen charset and length range |
191
+
192
+ ## Clipboard Support 🔐
193
+ When `-c/--copy` is set, output is copied to the clipboard using platform-native tools:
194
+ - macOS: `pbcopy`
195
+ - Windows: `clip`
196
+ - Linux: `xclip`, `xsel`, or `wl-copy`
197
+
198
+ ## Themes 🛡️
199
+ Set the accent color globally:
200
+ ```bash
201
+ hashsmith -T magenta
202
+ ```
203
+
204
+ ## Troubleshooting 🧬
205
+ - If hashing output in `base58` fails, ensure the hash is hex-based.
206
+ - For dictionary cracking, validate your wordlist path.
207
+
208
+ ## Security Notice 🛡️
209
+ Hashsmith is intended for educational and authorized security testing only. You are responsible for compliance with applicable laws.
210
+
211
+ ## License
212
+ See [LICENSE](LICENSE).
213
+ Hashsmith is a modular, terminal-based Swiss Army knife for encoding, decoding, hashing, and password cracking. Built for security enthusiasts 🛠️🔐
214
+
215
+ ## Features
216
+ - Encoding/Decoding: Base64, Hex, Binary, Morse, URL, Caesar, ROT13
217
+ - Hashing: MD5, SHA-1, SHA-256, SHA-512
218
+ - Cracking: Dictionary attack and basic brute-force
219
+ - File input/output support
220
+ - Optional salt support for hashing and cracking
221
+
222
+ ## Installation
223
+ 1. Create a virtual environment (optional)
224
+ 2. Install dependencies:
225
+
226
+ ```
227
+ pip install -r requirements.txt
228
+ ```
229
+
230
+ ## Usage
231
+ Run via module:
232
+
233
+ ```
234
+ python -m hashsmith --help
235
+ ```
236
+
237
+ ### Encode
238
+ ```
239
+ python -m hashsmith encode --type base64 --text "hello"
240
+ python -m hashsmith encode --type caesar --shift 5 --file input.txt --out output.txt
241
+ python -m hashsmith encode --type hex --text "hello" --copy
242
+ ```
243
+
244
+ ### Decode
245
+ ```
246
+ python -m hashsmith decode --type base64 --text "aGVsbG8="
247
+ python -m hashsmith decode --type morse --text ".... . .-.. .-.. ---"
248
+ python -m hashsmith decode --type hex --text "68656c6c6f" --copy
249
+ ```
250
+
251
+ ### Hash
252
+ ```
253
+ python -m hashsmith hash --type sha256 --text "hello"
254
+ python -m hashsmith hash --type md5 --text "secret" --salt "pepper" --salt-mode suffix
255
+ python -m hashsmith hash --type sha256 --text "hello" --copy
256
+ ```
257
+
258
+ ### Crack
259
+ ```
260
+ python -m hashsmith crack --type md5 --hash 5f4dcc3b5aa765d61d8327deb882cf99 --mode dict --wordlist wordlists/common.txt
261
+ python -m hashsmith crack --type sha1 --hash 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed --mode brute --min-len 1 --max-len 4
262
+ python -m hashsmith crack --type md5 --hash 5f4dcc3b5aa765d61d8327deb882cf99 --mode dict --wordlist wordlists/common.txt --copy
263
+ ```
264
+
265
+ ## Notes
266
+ - Dictionary cracking uses the provided wordlist file.
267
+ - Brute-force is intentionally small by default; adjust `--min-len` and `--max-len` carefully.
268
+
269
+ ## Roadmap
270
+ - Multithreading for cracking
271
+ - Additional encodings and hash types
272
+ - Better progress indicators
@@ -0,0 +1,29 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ setup.cfg
6
+ setup.py
7
+ hashsmith/__init__.py
8
+ hashsmith/__main__.py
9
+ hashsmith/cli.py
10
+ hashsmith/algorithms/__init__.py
11
+ hashsmith/algorithms/cracking.py
12
+ hashsmith/algorithms/decoding.py
13
+ hashsmith/algorithms/encoding.py
14
+ hashsmith/algorithms/hashing.py
15
+ hashsmith/algorithms/morse.py
16
+ hashsmith/utils/__init__.py
17
+ hashsmith/utils/banner.py
18
+ hashsmith/utils/clipboard.py
19
+ hashsmith/utils/hashdetect.py
20
+ hashsmith/utils/identify.py
21
+ hashsmith/utils/io.py
22
+ hashsmith/utils/metrics.py
23
+ hashsmith/utils/wordlist.py
24
+ hashsmith_cli.egg-info/PKG-INFO
25
+ hashsmith_cli.egg-info/SOURCES.txt
26
+ hashsmith_cli.egg-info/dependency_links.txt
27
+ hashsmith_cli.egg-info/entry_points.txt
28
+ hashsmith_cli.egg-info/requires.txt
29
+ hashsmith_cli.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ hashsmith = hashsmith.cli:main
@@ -0,0 +1,4 @@
1
+ rich>=13.7.0
2
+ pyperclip>=1.8.2
3
+ bcrypt>=4.1.2
4
+ argon2-cffi>=23.1.0
@@ -0,0 +1 @@
1
+ hashsmith
package/package.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "hashsmith-cli",
3
+ "version": "1.0.0",
4
+ "description": "Modular toolkit for encoding, hashing, and cracking.",
5
+ "main": "bin/index.js",
6
+ "bin": {
7
+ "hashsmith": "bin/index.js"
8
+ },
9
+ "scripts": {
10
+ "postinstall": "pip install hashsmith-cli"
11
+ },
12
+ "keywords": ["security", "hashing", "encoding", "cracking", "cli"],
13
+ "author": "Salih Sefer",
14
+ "license": "MIT"
15
+ }
package/pyproject.toml ADDED
@@ -0,0 +1,3 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1,4 @@
1
+ rich>=13.7.0
2
+ pyperclip>=1.8.2
3
+ bcrypt>=4.1.2
4
+ argon2-cffi>=23.1.0
package/setup.cfg ADDED
@@ -0,0 +1,23 @@
1
+ [metadata]
2
+ name = hashsmith-cli
3
+ version = 0.1.0
4
+ description = Hashsmith CLI for encoding, decoding, hashing, and cracking
5
+ long_description = file: README.md
6
+ long_description_content_type = text/markdown
7
+ license = MIT
8
+ author = Salih Sefer
9
+ url = https://github.com/salihsefer36/Hashsmith
10
+
11
+ [options]
12
+ packages = find:
13
+ include_package_data = True
14
+ python_requires = >=3.9
15
+ install_requires =
16
+ rich>=13.7.0
17
+ pyperclip>=1.8.2
18
+ bcrypt>=4.1.2
19
+ argon2-cffi>=23.1.0
20
+
21
+ [options.entry_points]
22
+ console_scripts =
23
+ hashsmith = hashsmith.cli:main
package/setup.py ADDED
@@ -0,0 +1,5 @@
1
+ from setuptools import setup
2
+
3
+
4
+ if __name__ == "__main__":
5
+ setup()