Skip to main content

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

  1. Hash Support: HashPrint can identify 90+ hashes.
  2. Export Options: HashPrint allows you to export results in various formats, like JSON and YAML.
  3. 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.
  4. Coloured Output: HashPrint outputs coloured results, making them easier to read.
  5. 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

MIT

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)

Source distribution for pyhashprint 1.0.0
File Size Uploaded
pyhashprint-1.0.0.tar.gz 13.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyhashprint 1.0.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

1.0.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