HashPrint
What's this?
Note: this is a student project
Surely a random string like 'b318c90ba09d05dfc9ff3991974eee68' can look scary. Be afraid no more, HashPrint got your back.
About HashPrint
HashPrint is a forensic CLI tool that can identify which algorithm (like MD5, bcrypt, SHA256) produced the scary looking string, called a hash, like the above one.
Features of HashPrint
- Hash Support: HashPrint can identify 90+ hashes.
- Export Options: HashPrint allows you to export results in various formats, like JSON and YAML.
- Multiple Hashes: HashPrint can read multiple hashes from a text file. It can recursively scan a directory to locate text files that contain hashes. It can also accept multiple hashes from the command-line.
- Coloured Output: HashPrint outputs coloured results, making them easier to read.
- Easy to use: if you ever feel stuck, remember help is just a flag away.
Installation
Requires Python 3.14+
If installing with pip, then you must have Python 3.14 or higher installed on your system
$ pip install pyhashprint
OR with uv
uv installs the correct Python version if necessary
First setup a virtual environment:
$ uv venv
Then install:
$ uv pip install pyhashprint
Use without installing
Requires uv
$ uv tool run pyhashprint
OR
$ uvx pyhashprint
How to use HashPrint?
| Option | Purpose |
|---|---|
| -h, --help | shows the help message and exits. |
| -f, --hash-file | this option takes a path to a text file as an argument. With this option, HashPrint will read the file at the specified path for hashes. The file must contain one hash per line. |
| -c, --hash | this option takes a hash as an argument and identifies it. It should be between single quotes and without the 0x prefix. |
| -x, --format | this option lets you choose between the export formats. You can export the results in JSON, YAML and text formats. This option cannot work without the -p, --path option. |
| -p, --path | this option specifies the path of the export file. If a path to a pre-existing file is specified, it will be overwritten if it already contains content. If the file at the specified path does not exist, HashPrint will create it. |
| -w, --walk | this option recursively scans a directory at the specified path for text files, containing one hash per line. |
| -v, --version | this option displays the version number of HashPrint. |
Usage examples
For help
$ hashprint --help
Display the version number
$ hashprint --version
Identify a single hash
$ hashprint -c 'a9993e364706816aba3e25717850c26c9cd0d89d'
OR
$ hashprint --hash 'a9993e364706816aba3e25717850c26c9cd0d89d'
Identify multiple hashes
$ hashprint -c '0cc175b9c0f1b6a831c399e269772661' -c 'e8b7be43'
Identify hashes from a file + export results to a file
$ hashprint -f path/to/txt/file/containing/hashes -x text -p path/of/export/file
The above command exports results in a human readable text format at a file of your choice. HashPrint will create the file if it does not exist.
Recursive Directory Scanner + exporting results to a file
$ hashprint -w path/to/directory -x format -p path/of/export/file
LICENSE
Metadata
Release files for pyhashprint 1.0.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 | |
|---|---|---|---|
| pyhashprint-1.0.0.tar.gz | 13.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyhashprint-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.6 kB
Release files / pyhashprint-1.0.0.tar.gz
| Download URL | pyhashprint-1.0.0.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f5eda226a53e6f85f8dc64623800caade5639178af1e217ca7d37006634239e
|
|
BLAKE2b-256 checksum How to use checksums |
e024477ad8305ef56ba93b57d247f3ebaa699f23bd137b6410a4a92833abfbdc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pyhashprint-1.0.0-py3-none-any.whl
| Download URL | pyhashprint-1.0.0-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
abbd2f105cdba6a352db6fc5050baa6db3339dca8c149c1ce07c05e949553abc
|
|
BLAKE2b-256 checksum How to use checksums |
c082e2fa49deb5d8e3b0776df4a239bd02e5da228922971ecc67f5395b65d00f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|