Rust blake3 crate的Python绑定
项目描述
blake3-py

Python绑定BLAKE3的官方Rust实现,基于PyO3。这些绑定公开了BLAKE3的所有功能,包括可扩展输出、密钥和多线程。基本API与Python标准hashlib
模块匹配。
示例
from blake3 import blake3
# Hash some input all at once. The input can be bytes, a bytearray, or a memoryview.
hash1 = blake3(b"foobarbaz").digest()
# Hash the same input incrementally.
hasher = blake3()
hasher.update(b"foo")
hasher.update(b"bar")
hasher.update(b"baz")
hash2 = hasher.digest()
assert hash1 == hash2
# Hash the same input fluently.
assert hash1 == blake3(b"foo").update(b"bar").update(b"baz").digest()
# Hexadecimal output.
print("The hash of 'hello world' is", blake3(b"hello world").hexdigest())
# Use the keyed hashing mode, which takes a 32-byte key.
import secrets
random_key = secrets.token_bytes(32)
message = b"a message to authenticate"
mac = blake3(message, key=random_key).digest()
# Use the key derivation mode, which takes a context string. Context strings
# should be hardcoded, globally unique, and application-specific.
context = "blake3-py 2020-03-04 11:13:10 example context"
key_material = b"usually at least 32 random bytes, not a password"
derived_key = blake3(key_material, derive_key_context=context).digest()
# Extendable output. The default digest size is 32 bytes.
extended = blake3(b"foo").digest(length=100)
assert extended[:32] == blake3(b"foo").digest()
assert extended[75:100] == blake3(b"foo").digest(length=25, seek=75)
# Hash a large input using multiple threads. Note that this can be slower for
# inputs shorter than ~1 MB, and it's a good idea to benchmark it for your use
# case on your platform.
large_input = bytearray(1_000_000)
hash_single = blake3(large_input).digest()
hash_two = blake3(large_input, max_threads=2).digest()
hash_many = blake3(large_input, max_threads=blake3.AUTO).digest()
assert hash_single == hash_two == hash_many
# Hash a file with multiple threads using memory mapping. This is what b3sum
# does by default.
file_hasher = blake3(max_threads=blake3.AUTO)
file_hasher.update_mmap("/big/file.txt")
file_hash = file_hasher.digest()
# Copy a hasher that's already accepted some input.
hasher1 = blake3(b"foo")
hasher2 = hasher1.copy()
hasher1.update(b"bar")
hasher2.update(b"baz")
assert hasher1.digest() == blake3(b"foobar").digest()
assert hasher2.digest() == blake3(b"foobaz").digest()
安装
pip install blake3
与Pip一样,您可能需要使用sudo
或上述命令中的--user
标志,具体取决于您如何在系统上安装Python。
大多数环境在PyPI上提供了二进制轮。但是,如果您正在构建源分发,或者如果为您的环境不可用二进制轮,您需要安装Rust工具链。
C绑定
在c_impl
目录中提供了官方BLAKE3 C实现的实验性绑定。这些可能不会在PyPI上发布,并且大多数应用程序应首选基于Rust的绑定。但是,如果您无法依赖于Rust工具链,并且您在项目不提供二进制轮的平台之一上,基于C的绑定可能是一个替代方案。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
blake3-0.4.1.tar.gz (117.7 kB 查看哈希值)
构建发行版
blake3-0.4.1-cp312-none-win_amd64.whl (210.1 kB 查看哈希值)
blake3-0.4.1-cp312-none-win32.whl (226.8 kB 查看哈希值)
blake3-0.4.1-cp311-none-win_amd64.whl (210.1 kB 查看哈希值)
blake3-0.4.1-cp311-none-win32.whl (226.9 kB 查看哈希值)
blake3-0.4.1-cp310-none-win_amd64.whl (210.1 kB 查看哈希值)
blake3-0.4.1-cp310-none-win32.whl (226.9 kB 查看哈希值)
blake3-0.4.1-cp39-none-win_amd64.whl (210.3 kB 查看哈希值)
blake3-0.4.1-cp39-none-win32.whl (227.0 kB 查看哈希值)
blake3-0.4.1-cp38-none-win_amd64.whl (210.0 kB 查看哈希值)
blake3-0.4.1-cp38-none-win32.whl (227.0 kB 查看哈希值)
blake3-0.4.1-cp37-none-win_amd64.whl (210.1 kB 查看哈希值)
blake3-0.4.1-cp37-none-win32.whl (226.5 kB 查看哈希值)
关闭
blake3-0.4.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0625c8679203d5a1d30f859696a3fd75b2f50587984690adab839ef112f4c043 |
|
MD5 | 1c5980f3063cc69e5dd5d998f5a8c411 |
|
BLAKE2b-256 | b08d43eafa8a785547c33b611068ffd6d914f5c5f96637d5b453abc556f095a0 |
关闭
哈希值 for blake3-0.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a51f48ec21706a22b4954fc17da72bd177d82d22ee434da0c5dc3aafeef5b8d3 |
|
MD5 | 237af1963dee42c6bcdd075146ab6483 |
|
BLAKE2b-256 | ecc68f6717fbea55ec9eb21543aa6d8e1bd904d6d2dcc886b555aa3d3f450ba7 |
关闭
哈希值 for blake3-0.4.1-cp312-cp312-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fe31163eb08fc3f82a2325e90cea88f2d7ad0265314a03de716f906b2a43be96 |
|
MD5 | f901d0c0775215950ef676ed3d67d680 |
|
BLAKE2b-256 | e08f184105e1a84ac108cfec8702307b588cb123e1a203e8538e8c3e9b0320da |
关闭
哈希值 for blake3-0.4.1-cp312-cp312-macosx_10_12_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb98f18bc5e218ff1134acb3b9f0e3588ad5e6f38b7279cce4559c8ae9d780e6 |
|
MD5 | 99b28a1b006d8eaad64d8e9ec94b7c3e |
|
BLAKE2b-256 | 50f8c5e6c5749aab2d84c177e8d86792aed8adaad023bfd045abfc6f053cdd57 |
关闭
哈希值 for blake3-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d653623361da8db3406f4a90b39d38016f9f678e22099df0d5f8ab77efb7b4ae |
|
MD5 | 9986a291daaf01d127b1d8739625763d |
|
BLAKE2b-256 | ad9e84fda33f9cd0b978d9e73becf51f3e11e33180e07e5b6bf3d16fbc4021e2 |
关闭
哈希值 for blake3-0.4.1-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9633e0198174eb77196f9f8b18d75449d86e8fa234727c98d685d5404f84eb8e |
|
MD5 | fc919deda78720e1c2c9a71967b05cf1 |
|
BLAKE2b-256 | 724c8c8153dfb29e894655c602e08813946e570ec23bf6bd3c69b29560467afe |
关闭
哈希值 for blake3-0.4.1-cp311-cp311-macosx_10_12_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3cc656cab955ab6c18b587a8b4faa33930fea089981f76a7c64f33e4a26c1dac |
|
MD5 | 902cc7f1c2e3b1c61b6f8dc8041c9442 |
|
BLAKE2b-256 | 11fd294d17ff72711d88c5b601c5ce86e20f69a1b3c25b35b777bc27a1b27386 |
关闭
哈希值 for blake3-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ef534c59ae76faba1c7e1531930dadecaa7817e25aa6e6c825150c04ed243a3d |
|
MD5 | 4470a7227779303d2e682603d8e3a373 |
|
BLAKE2b-256 | 9ce12a8a076ec81e3c450a07ad5af70b7330a0571a019147547c4180fb88696c |
关闭
哈希值 用于 blake3-0.4.1-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 283860fe58b3a6d74e5be1ece78bbcd7de819b48476d7a534b989dd6ab49a083 |
|
MD5 | 0147ce64ae9a425e20a082d69f5be9e9 |
|
BLAKE2b-256 | 368393ddc077305dc9172270f90577ff1d828b9dae550824773749d747291696 |
关闭
哈希值 用于 blake3-0.4.1-cp310-cp310-macosx_10_12_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1a086cc9401fb0b09f9b4ba14444457d9b04a6d8086cd96b45ebf252afc49109 |
|
MD5 | 26a73c4bdd718be908bdec154413d2ca |
|
BLAKE2b-256 | 0e9f28e08ecb939027fbafce0d6ff9ba1731bb55ec6b832404cff1b8e9aafa0b |
关闭
哈希值 用于 blake3-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a6c555d882117d638830b2f5f0fd9980bcd63286ad4c9959bc16b3df77042d6f |
|
MD5 | 3badd5b8b555d416461fd66e8e03d391 |
|
BLAKE2b-256 | a8111ba8cf07ab1f036a14cba3f88b844fcb05ab5642464f53243d0b54b28715 |
关闭
哈希值 用于 blake3-0.4.1-cp39-cp39-macosx_10_12_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4d99136b7f7c8adcee0f7484e74b159fd3ea58e7d1e94d5351f0e98d9cfc522f |
|
MD5 | 229484a8d003289861fe3fb7f6815156 |
|
BLAKE2b-256 | 1b636d48a55f1cff8d2aa8bdb58b4f982dce2ba4e86577b7c276e0feca7048da |
关闭
哈希值 用于 blake3-0.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 87a9fc37260d355569f0be751e0054e0b37e6a4ec022f4b7107ffeede419dde2 |
|
MD5 | fb906ebd7d9d1121e221c3d9171edc83 |
|
BLAKE2b-256 | fee44fcaed7a31661700a6745ae268c7f7d7421a457dd9fa50ef619cd3bc5ef9 |
关闭
哈希值 用于 blake3-0.4.1-cp38-cp38-macosx_10_12_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb6a62ef04c5ec4dd4630615c6a22ddab16eb0b7887276b3449946c12eeb37a2 |
|
MD5 | 1d6c5c2f7a94810e0fecead7f980b7c0 |
|
BLAKE2b-256 | 3ed592da3413490a71ef2ad718644106c843cafeaa77ecc3a6ac0e6433d37a5e |
关闭
哈希值 用于 blake3-0.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f8fa53818f1170611d781aadbcae809ecc2334679212b4a4b3feabb55deb594d |
|
MD5 | 40fee2a5b27dd95841c1a64b9d16a94b |
|
BLAKE2b-256 | 461d0e058cba28173fbe29b75c83a92e823996130bd862e89a15f601d9684d2d |
关闭
哈希值 用于 blake3-0.4.1-cp37-cp37m-macosx_10_12_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a73c5940454bd693d7172af8fad23019c2f5a9b910ed961c20bdf5a91babd9f2 |
|
MD5 | 121329d07da61170c7640f8a2ec9a8d0 |
|
BLAKE2b-256 | 79db7e4676e55a0789d9fccf7a8258d9d2af836c056e60a2b97ef8ced64887a4 |