No project description provided
Project description
hosh
Fast cryptographic hash (half-blake3) and operators for Rust and Python.
Python installation
from package
# Set up a virtualenv.
python3 -m venv venv
source venv/bin/activate
# Install from PyPI
pip install hosh
from source
cd my-project
git clone https://github.com/davips/hosh ../hosh
pip install -e ../hosh
Examples
Basic operations
from hosh import Hash
# Hashes can be multiplied.
a = Hash(blob=b"Some large binary content...")
b = Hash(blob=b"Some other binary content. Might be, e.g., an action or another large content.")
c = a * b
print(f"{a} * {b} = {c}")
"""
0v58YxIhaae5NfYuXsoC1i * 04orKjYHAZraYORILOVwos = 3yT1A5oLlW2HpjSkgzo2yg
"""
# Multiplication can be reverted by the inverse hash. Zero is the identity hash.
print(f"{b} * {~b} = {b * ~b} = 0")
"""
04orKjYHAZraYORILOVwos * 211eErwhEiGnit0beo4tjo = 0000000000000000000000 = 0
"""
print(f"{c} * {~b} = {c * ~b} = {a} = a")
"""
3yT1A5oLlW2HpjSkgzo2yg * 211eErwhEiGnit0beo4tjo = 0v58YxIhaae5NfYuXsoC1i = 0v58YxIhaae5NfYuXsoC1i = a
"""
print(f"{~a} * {c} = {~a * c} = {b} = b")
"""
4q4X1jczNK2eKCV4uxEPNk * 3yT1A5oLlW2HpjSkgzo2yg = 04orKjYHAZraYORILOVwos = 04orKjYHAZraYORILOVwos = b
"""
# Division is shorthand for reversion.
print(f"{c} / {b} = {c / b} = a")
"""
3yT1A5oLlW2HpjSkgzo2yg / 04orKjYHAZraYORILOVwos = 0v58YxIhaae5NfYuXsoC1i = a
"""
# Hash multiplication is not expected to be commutative.
print(f"{a * b} != {b * a}")
"""
3yT1A5oLlW2HpjSkgzo2yg != 4AvOF9Fbhakd26mosfuuvR
"""
# Hash multiplication is associative.
print(f"{a * (b * c)} = {(a * b) * c}")
"""
51UdYbEAGI5mVogE4aFFKe = 51UdYbEAGI5mVogE4aFFKe
"""
Features
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hosh-0.210317.0.tar.gz
(65.0 kB
view hashes)
Built Distributions
Close
Hashes for hosh-0.210317.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 720922fb05379fdeb6c2dfab5a9d44de1692348b30cf45fd651b308e898f0535 |
|
MD5 | 5e39eadd50b28847f5b756260ead78e5 |
|
BLAKE2b-256 | 2b050362584950652114898c62aa368e5e81b2218197d9f00ab24b0bdc7de93d |
Close
Hashes for hosh-0.210317.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4f609b9d6d771de71e58f728d60c061c7ded219d09ba0f04714827beb42a408 |
|
MD5 | 440b53a0fbf2bca6e329e7cfb644ef4b |
|
BLAKE2b-256 | 4688271569c68b089a43d7d71b632deb092272b2e727bd48d3d7d504daa24289 |
Close
Hashes for hosh-0.210317.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c7a5df90235f85359c3acaab38c69153ab6011638d5e3a7fc477a6fc6c63cfc |
|
MD5 | a68674c8457d8da11393d1dc88f2062f |
|
BLAKE2b-256 | 86fb5d60950473ce3a052585b8460d3943aa45356869679c321c7506e06ec998 |
Close
Hashes for hosh-0.210317.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3f325c9f7aeac17bdde8464124746d4e71b0422d094e52bd2f62609506d1914 |
|
MD5 | 3fdb2a4610a667c585cc49b57afe1f62 |
|
BLAKE2b-256 | 7648afd8b6f9c999c1e48f31503fb918c93d300083da2040f4ae31ce6fb8dcc9 |
Close
Hashes for hosh-0.210317.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3daf1048292a2d57e7c1bd61750f48c120c23430ce192c9f8c991b9d533a371c |
|
MD5 | e589cb60e0f5575c63f355dd2c2b784e |
|
BLAKE2b-256 | 7621dbaa63d5571eb7e493e2d476510695a387ad52ea9e79edf8a96d95687225 |
Close
Hashes for hosh-0.210317.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f90468c18f4b68a49cb5320e5e31022c5ca24c2581e836c8d5a51445806ef4a |
|
MD5 | 8907ab32cbad771f3fc755019cbc17e9 |
|
BLAKE2b-256 | 3d0f66d88f6ac448dd2dd08f270a7428523cfca359475ff409539a03f2bcff9e |
Close
Hashes for hosh-0.210317.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41fd3e705e73524179fc969ec032859eaec1007719b27204753a39b81e225e4f |
|
MD5 | 22ae70f01f8a963222480b2d842256e3 |
|
BLAKE2b-256 | 7ac4709b53d6f1706301a03f7a9e2bcbd158e455c2af896dc6c9806a53530b8a |
Close
Hashes for hosh-0.210317.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 542ac5eca09fda3a86779fe708d77bb0c18418e176905ab23014a0b6f846c8bb |
|
MD5 | 93cec805be157ea600c3657b83654b8f |
|
BLAKE2b-256 | df61ec6b45d2ec65d6b7656a77da708e64c5eaafb87941f18b4c47011ea6563a |