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}")
"""
0Sux8dX5O3gkPx5KkGKYKP * 0Q7q8pNuFRZwoBBzM1RYiq = 0EHzVjd9q7pK4AmiZlCffL
"""
# Multiplication can be reverted by the inverse hash. Zero is the identity hash.
print(f"{b} * {~b} = {b * ~b} = 0")
"""
0Q7q8pNuFRZwoBBzM1RYiq * 3TW3af8GIVKzzojLZbBqq5 = 0000000000000000000000 = 0
"""
print(f"{c} * {~b} = {c * ~b} = {a} = a")
"""
0EHzVjd9q7pK4AmiZlCffL * 3TW3af8GIVKzzojLZbBqq5 = 0Sux8dX5O3gkPx5KkGKYKP = 0Sux8dX5O3gkPx5KkGKYKP = a
"""
print(f"{~a} * {c} = {~a * c} = {b} = b")
"""
6Ms8EdXd3yzeddcxefn5FF * 0EHzVjd9q7pK4AmiZlCffL = 0Q7q8pNuFRZwoBBzM1RYiq = 0Q7q8pNuFRZwoBBzM1RYiq = b
"""
# Division is shorthand for reversion.
print(f"{c} / {b} = {c / b} = a")
"""
0EHzVjd9q7pK4AmiZlCffL / 0Q7q8pNuFRZwoBBzM1RYiq = 0Sux8dX5O3gkPx5KkGKYKP = a
"""
# Hash multiplication is not expected to be commutative.
print(f"{a * b} != {b * a}")
"""
0EHzVjd9q7pK4AmiZlCffL != 3qXz8PSpGGugRb0jP9BEzd
"""
# Hash multiplication is associative.
print(f"{a * (b * c)} = {(a * b) * c}")
"""
2xWdrj6rCfITvCfiU31v96 = 2xWdrj6rCfITvCfiU31v96
"""
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distributions
Close
Hashes for hosh-0.2103.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea6665aa306a419017ad59406b578398d195e8574be808bbdf6ab18cfc6cd28f |
|
MD5 | f99207742debeeb0129a029a587d6cb3 |
|
BLAKE2b-256 | 3ba7a8cb05f5f0b4ff690796e596c5a3d24a726571c5566b5af8277898658ca4 |
Close
Hashes for hosh-0.2103.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0989f859b2bcd475d3d6032e8eea6e3aae9e0c96f02fb5de195027db6edfbb37 |
|
MD5 | f1eb928a0b3aae9ed4c827efe147b219 |
|
BLAKE2b-256 | 45afcbfd9f7ecd183423eca315f41462bfd6cbe57c22c4458990ae544e736d67 |
Close
Hashes for hosh-0.2103.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9d9af8aeee9667b385729b52689a7e6e4663f592dcf569545aa6328ef574100 |
|
MD5 | 0a2a4907763ab891d5a8b107a91fcfe2 |
|
BLAKE2b-256 | d978bab61b2f7a8dda0905b455451465a7e6a92c521588d35aa841b25fbe7936 |
Close
Hashes for hosh-0.2103.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67428661392a3a58a855456e4f2b892f1bb846fbd7d8c61132cac931c343a2ee |
|
MD5 | bf394888429df69b6717026e766c3229 |
|
BLAKE2b-256 | a5d3928630a471a7b40e663822bd96f4572153ae1f67465a2b9b21d19029e9ad |
Close
Hashes for hosh-0.2103.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88787b00657efb3d26fb5587a90e62f4a25f261865d9df9101d479f6de897d65 |
|
MD5 | a2a5ad4ad67a0131de73ed952b18ebd6 |
|
BLAKE2b-256 | 9df9d5740041cc8ed74d315b4a8948fa8fb901522c4ddcd8298c529026d90231 |
Close
Hashes for hosh-0.2103.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e0ed63e17c09f7d88da8aebc534817fc456be239271a8b5fb0dd07e5a891de9 |
|
MD5 | 85b68549aeeb4a00d6e00eaa4aebcd69 |
|
BLAKE2b-256 | 9bafdbf180e84683cf0c8e2640ce0fb7312666520a3841f75741b2a25412f4d0 |
Close
Hashes for hosh-0.2103.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7404a362a45f7dd1d8a9dff4f0ed085461baaa89e22f09dbbb535ee689700663 |
|
MD5 | 5c403b5ecc7e78bc0425c5515d94cf45 |
|
BLAKE2b-256 | dcaad642c82573807bbf50d355867a6ac1bca5a7c9971ff4c6316227bc43301f |
Close
Hashes for hosh-0.2103.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98141745eea89ffb41c8bd5e8a39f58f44dfd9c7365a29730cbe5103f294f2cc |
|
MD5 | 579db1e2f8f4649ae9fa6269e4772c5f |
|
BLAKE2b-256 | 7bf24d19a5dfab0ea5e701c0e84c00c7987594c1a974a42f9c0150f808254c4c |