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.2103.2.tar.gz
(65.0 kB
view hashes)
Built Distributions
Close
Hashes for hosh-0.2103.2-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8ec05f2f3b3076967bee6a6a33a140cee322fd9c6dcfe16c0459dfa10477b0e |
|
MD5 | 7b4cd54165f9c17b18c5baf9fb1a8ee9 |
|
BLAKE2b-256 | 5d2d0f008c6594b344d8590a7274f59c4b9f66b3f66e5e006776b37ffbf7ca65 |
Close
Hashes for hosh-0.2103.2-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b19e832a9688dce8793883e446f3ea1db5723bc9aba7ddfd96546d66ab373f9 |
|
MD5 | d2f5f521126d0ed6d28c106c94afe40c |
|
BLAKE2b-256 | 840c65bbbd9b3c41ae85b3e531d5287cb710416002abd1602e84405ca506aedf |
Close
Hashes for hosh-0.2103.2-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12e9b7d58389b1aa349f0c8f5d49a9ce17d827319d2ecebe0a76747ec1e5907a |
|
MD5 | 1e79e08266d647b618a02159e7632a29 |
|
BLAKE2b-256 | 30cfd80a472c5bcbe9db58d49bd8c505f87befdaa3e1180ff70509a8fd915a1b |
Close
Hashes for hosh-0.2103.2-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11d2f40bbc4a59153ebdb542f5c90e4335d799822e61fd5d59de0681730e0921 |
|
MD5 | 210540a0a33a34a3292e2c6cc740790a |
|
BLAKE2b-256 | 0c35fde013b052a2edb609389fedd21bf24d91b79925c8fccad157dd85ade61c |
Close
Hashes for hosh-0.2103.2-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cbbba2f3855bcea5487a66a8621828a878117402c892159d6b3356e4b5b2ee1 |
|
MD5 | 36b8ec4b235574ac49fa292dd87bc3c1 |
|
BLAKE2b-256 | f18ffb9abc2201d1fa5699af5ba8b8f1641c741563571f7efbb145cffc6d16b5 |
Close
Hashes for hosh-0.2103.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7db0fb0fb1ed3023c4a43110669763e4b41f7cf7f744a640dddfc7e1b288465d |
|
MD5 | 5f1075d9b0ad58e1d40646d7d57cf40e |
|
BLAKE2b-256 | 4a64ca0b6919e42c026203705f1efa079ef5cc3ca7ba389c270a20440c1cd027 |
Close
Hashes for hosh-0.2103.2-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48d3b944def5ac0f880ca2975e54beef3d61550188705619c350552cbe546dcc |
|
MD5 | 7a2e02ab56f5ef7471b28a4570af9059 |
|
BLAKE2b-256 | a98e443faba4688a88bb340c4b58947bfa8754a9542b2a6776433172230ad1bf |
Close
Hashes for hosh-0.2103.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74d0c135f559f4dbcbada5d7a72a7b7887ad79d8617726631cc7eb373997e53b |
|
MD5 | 15ca7b92caa802e50b55b15d3eacd2ec |
|
BLAKE2b-256 | e88164bc4ff631d50fe653c514202b5aecf42d31e93297bfbb551d1d4b217a25 |