Skip to main content

Create an image from a MD5, SHA512, SHA3-512, Blake2b or SHAKE256 hash

Project description

Hashpic

Hashpic creates an image from the MD5 hash of your input.

Since v0.2.0 it is also possible to create an image from a SHA-512 hash.

Since v0.3.0 it is also possible to create an image from a SHAKE-256 hash with variable digest length of 4, 16, 25, 36, 64, 100, 144 or 225.

Since v0.3.5 it is also possible to create an image from a SHA3-512 and a BLAKE2b hash.

Since v0.4.0 it is possible to create an image as SVG, which is much faster.

Install

pip3 install hashpic

Usage

> python3 -m hashpic 'Hashpic rocks!'

This should create a file output.png in your current directory. The input Hashpic rocks! should create the following image:

hashpic image

Piping from another program

All this commands should produce the same image as above.

> printf 'Hashpic rocks!' | md5 | python3 -m hashpic --bypass

> printf 'Hashpic rocks!' | python3 -m hashpic

SVG Mode 🎉🎉🎉

Since v0.4.0 it is possible to create an image as SVG. The following command will create a file output.svg in your current directory.

> python3 -m hashpic 'Hashpic rocks!' --svg

svg

Console Mode

console

Hashing a file

It is also possible to create an image from a hash of a file. Use the --file argument for that.

> python3 -m hashpic --file README.md

SHA-512 Mode

It is also possible to create an image from a SHA-512 hash. All arguments for MD5 Mode are also available for SHA512 Mode.

> python3 -m hashpic --sha512 'Hashpic rocks!'

> printf 'Hashpic rocks!' | python3 -m hashpic --sha512

This commands should create the following image:

sha512 image

SHAKE256 Mode

You can create an image from a SHAKE256 hash with variable digest lengths. Valid lengths are 4, 16, 25, 36, 64, 100, 144 and 225. You must specify the length of the digest if you want to create an image from a SHAKE256 hash.

> python3 -m hashpic --shake256 --length 100 'Hashpic rocks!'

The command above should produce the following image:

shake256

The `--slow` flag

--slow flag

You can use the --slow flag to run a generalized method instead of a hardcoded one. But this have some performance issues.

Hardcoded:

hardcoded

Generalized:

hardcoded

Since v0.4.0 it is possible to create an image as SVG. Creating SVG files is blazingly fast:

svg

More SHAKE256 examples

Click to see more examples.

Digest Length of 4

> python3 -m hashpic --shake256 --length 4 'Hashpic rocks!'

shake256

Digest Length of 16

> python3 -m hashpic --shake256 --length 16 'Hashpic rocks!'

shake256

Digest Length of 25

> python3 -m hashpic --shake256 --length 25 'Hashpic rocks!'

shake256

Digest Length of 36

> python3 -m hashpic --shake256 --length 36 'Hashpic rocks!'

shake256

Digest Length of 64

> python3 -m hashpic --shake256 --length 64 'Hashpic rocks!'

shake256

Digest Length of 225

Maybe this command will take a few seconds to complete.

> python3 -m hashpic --shake256 --length 225 'Hashpic rocks!'

shake256


SHA3 Mode

It is possible to create an image from a SHA3 hash.

> python3 -m hashpic 'Hashpic rocks!' --sha3

sha3

BLAKE2b Mode

It is possible to create an image from a BLAKE2b hash.

> python3 -m hashpic 'Hashpic rocks!' --blake2b

sha3

Examples

Bypassing a hash directly:

> python3 -m hashpic ff00ff00ff00ff0000ff00ff00ff00ffff00ff00ff00ff0000ff00ff00ff00ffff00ff00ff00ff0000ff00ff00ff00ffff00ff00ff00ff0000ff00ff00ff00ff --bypass --sha512

This command will produce the following image:

bypassed

So we can call the hash above the so called chessboard hash.


You can also bypass a hash from another program:

bypassed from another program


With all this in mind you can also use hashpic to create an image not only from a hash but e.g. from the current time in hex:

> python3 -c "import time; print(hex(int(time.time()))[2:])" | python3 -m hashpic --shake256 --length 4 --bypass

Or e.g. an IP address in hexadecimal form:

# localhost hex(127.0.0.1) == 7f000001
> python3 -m hashpic 7f000001 --shake256 --length 4 --bypass

# e.g. an IPv6 address of Googles DNS server
> printf 2001:4860:4860:0000:0000:0000:0000:8844 | tr -d ':' | python3 -m hashpic --bypass 

Disclaimer

The color palette in data.py was copied from and influenced by the string-color library. Thanks for this!

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

hashpic-0.4.4.tar.gz (19.7 kB view hashes)

Uploaded Source

Built Distribution

hashpic-0.4.4-py3-none-any.whl (22.5 kB view hashes)

Uploaded Python 3

Supported by

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