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 Distribution
hosh-0.2103.1.tar.gz
(24.8 kB
view hashes)
Built Distributions
Close
Hashes for hosh-0.2103.1-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11f8970e6b39ba59d5ffff417531bb1fff8a6627d95583934588c1288136ddea |
|
MD5 | 2719eb4841820a78f248cd33ae42b5b2 |
|
BLAKE2b-256 | d39ed7c1500925f265d633d04c44bd921d1c1b3379bfbd35623956a3b66f7806 |
Close
Hashes for hosh-0.2103.1-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a485a174076afc8fac8eb949e2f3ccce5bcffc556e6f007aa1c507ee3a1f7140 |
|
MD5 | 3f1f72eee0647011baf3ff0e01be551a |
|
BLAKE2b-256 | 088da47cdfba41147962d9427563db329bc09b0af15c6776a52b19ac748fa602 |
Close
Hashes for hosh-0.2103.1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c2e8f893ac6415ba777c27c54033f04dd5174446232f8d05642e6cdde9877e2 |
|
MD5 | eded91fcf30f76c1a0df060d6b317dd4 |
|
BLAKE2b-256 | 4d92ed5e4687cfb18ee96026a1bef634419d08e0cfbfacb9ed517305ed50b977 |
Close
Hashes for hosh-0.2103.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 391fcc45ea8165f11dfaa7e234968b05f040ca2934bd81a4edf5409b3c13ad41 |
|
MD5 | 7d5f7e6d54d8a7cc75e97e55d6582073 |
|
BLAKE2b-256 | b78e08218724b3d0d5a5e25e23ed6ec6a8a4c6592f84ef9e772abad7a8b7399c |
Close
Hashes for hosh-0.2103.1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df6479e1a3d4a3fd1ce852e96e60fb92e34dbcfb43ec6d7028219b98eb5a0bef |
|
MD5 | 8c75929e8f772056cf236c88e1662a80 |
|
BLAKE2b-256 | 9883fd7c1976b8acfb9a1eadd6bd612f43063ad1bd4847b03708421b05c32a9c |
Close
Hashes for hosh-0.2103.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9fcc6d49320ab6bcb08fb392100647abd672ac23a64ebf587fc9173c4485e78 |
|
MD5 | 3ed2b1e7c0894aeb7e51377548816798 |
|
BLAKE2b-256 | 31ac943f0d9ef423e9340cb04b6618f73332b1137951943ae349ee3634b20436 |
Close
Hashes for hosh-0.2103.1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df36f668a692aaa70bd2218ca3f838c3b416f59042ace9453760bbf8d7739316 |
|
MD5 | 9c19208dce1bd771a06aebf552bd930c |
|
BLAKE2b-256 | ac5392a6f5c36c2bd7e557fb348d32129099fce438b829f9ca90f4fb11a47dc6 |
Close
Hashes for hosh-0.2103.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43c6a0fda1fa01c925a6a2186c1fbcec85c1b4e9350ae9c1c7708a99ed2fa59e |
|
MD5 | 650500de319788c6a00f50198e51da26 |
|
BLAKE2b-256 | 9a53bdcef9c34e66ed2697aeb5b1b67863ca5a1db4fbb5669b0fad8f6b3ff62e |