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.
- package/LICENSE +21 -0
- package/MANIFEST.in +2 -0
- package/README.md +256 -0
- package/bin/index.js +10 -0
- package/dist/hashsmith_cli-0.1.0-py3-none-any.whl +0 -0
- package/dist/hashsmith_cli-0.1.0.tar.gz +0 -0
- package/hashsmith/__init__.py +3 -0
- package/hashsmith/__main__.py +4 -0
- package/hashsmith/algorithms/__init__.py +1 -0
- package/hashsmith/algorithms/cracking.py +276 -0
- package/hashsmith/algorithms/decoding.py +317 -0
- package/hashsmith/algorithms/encoding.py +203 -0
- package/hashsmith/algorithms/hashing.py +223 -0
- package/hashsmith/algorithms/morse.py +64 -0
- package/hashsmith/cli.py +1014 -0
- package/hashsmith/utils/__init__.py +1 -0
- package/hashsmith/utils/banner.py +20 -0
- package/hashsmith/utils/clipboard.py +37 -0
- package/hashsmith/utils/hashdetect.py +33 -0
- package/hashsmith/utils/identify.py +629 -0
- package/hashsmith/utils/io.py +30 -0
- package/hashsmith/utils/metrics.py +20 -0
- package/hashsmith/utils/wordlist.py +11 -0
- package/hashsmith_cli.egg-info/PKG-INFO +272 -0
- package/hashsmith_cli.egg-info/SOURCES.txt +29 -0
- package/hashsmith_cli.egg-info/dependency_links.txt +1 -0
- package/hashsmith_cli.egg-info/entry_points.txt +2 -0
- package/hashsmith_cli.egg-info/requires.txt +4 -0
- package/hashsmith_cli.egg-info/top_level.txt +1 -0
- package/package.json +15 -0
- package/pyproject.toml +3 -0
- package/requirements.txt +4 -0
- package/setup.cfg +23 -0
- package/setup.py +5 -0
- package/wordlists/common.txt +230931 -0
|
@@ -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 @@
|
|
|
1
|
+
|
|
@@ -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
package/requirements.txt
ADDED
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
|