SHA-3 (Keccak) for Python 2.7 - 3.5
项目描述
SHA-3包装器(keccak)用于Python。该软件包是对优化后的Keccak代码包的包装,https://github.com/gvanas/KeccakCodePackage。
该模块是我的Python 3.6(目前正在开发中)SHA-3模块的独立版本。sha3module.c中的代码已被修改以兼容Python 2.7到3.5。Python 2.6及更早版本不受支持。
自pysha 0.3以来的更新
pysha3 1.0与pysha3 0.3不兼容!
pysha3 < 1.0使用旧的Keccak实现。在SHA3最终确定期间,NIST将分隔符后缀从0x01更改为0x06。Keccak海绵函数保持不变。pysha3 1.0也提供以前的Keccak哈希。
平台
pysha3已经在几个平台上成功测试
Linux(GCC,clang)在X86,X86_64和ARMv6(小端)上
Windows(VS 2008,VS 2010,VS2015)在X86和X86_64上
用法
sha3模块包含几个具有PEP 247兼容接口的哈希对象构造函数。该模块提供SHA3,SHAKE和Keccak
sha3_228(),sha3_256(),sha3_384()和sha3_512()
shake_128(),shake_256()
keccak_228(),keccak_256(),keccak_384()和keccak_512()
sha3模块对hashlib模块进行猴子补丁。猴子补丁在第一次导入sha3模块时自动激活。Python 3.6的hashlib模块将在所有平台上支持四种SHA-3算法和两种SHAKE算法。因此,您不应直接使用sha3模块,而应通过hashlib接口进行操作。
>>> import sys >>> import hashlib >>> if sys.version_info < (3, 6): ... import sha3 >>> s = hashlib.sha3_512() >>> s.name 'sha3_512' >>> s.digest_size 64 >>> s.update(b"data") >>> s.hexdigest() 'ceca4daf960c2bbfb4a9edaca9b8137a801b65bae377e0f534ef9141c8684c0fedc1768d1afde9766572846c42b935f61177eaf97d355fa8dc2bca3fecfa754d' >>> s = hashlib.shake_256() >>> s.update(b"data") >>> s.hexdigest(4) 'c73dbed8' >>> s.hexdigest(8) 'c73dbed8527f5ae0' >>> s.hexdigest(16) 'c73dbed8527f5ae0568679f30ecc5cb6' >>> import sha3 >>> k = sha3.keccak_512() >>> k.update(b"data") >>> k.hexdigest() '1065aceeded3a5e4412e2187e919bffeadf815f5bd73d37fe00d384fe29f55f08462fdabe1007b993ce5b8119630e7db93101d9425d6e352e22ffe3dcb56b825'
变更日志
pysha3 1.0.2
发布日期:2017年2月5日
将内部C扩展重命名为_pysha3,以避免与Python 3.6的_sha3扩展冲突。
pysha3 1.0.1
发布日期:2017年1月24日
修复github.org -> github.com(Pi Delport)
修复Python 2的endian检查(William Grant)
修复变更日志,圣诞节发布的版本是1.0.0,而不是1.1.0
pysha3 1.0.0
发布日期:2016年12月24日
与Python 3.6.0版本同步
将所有回滚相关添加移动到backport.inc
修复flake8违规
pysha3 1.0b1
发布日期:2016年5月1日
更新后端以使用最新的Keccak代码包。pysha3现在实现了官方NIST标准。旧的Keccak哈希值可以通过keccak前缀访问。
添加SHAKE支持。
所有sha3、shake和keccak变体都是独立的类型,而不是返回相同类型的工厂函数。
删除对Python 2.6和Python 3.0到3.3的支持。
修复禁用线程优化的错误。
添加用于额外测试的向量文件。
添加基于http://wolfgang-ehrhardt.de/hmac-sha3-testvectors.html示例的实验性HMAC支持。
测试未对齐数据的哈希。
将ISO C11 memset_s()函数添加为_Py_memset_s(),以安全地擦除包含敏感数据的内存。页面https://www.securecoding.cert.org/confluence/display/seccode/MSC06-C.+Be+aware+of+compiler+optimization+when+dealing+with+sensitive+data解释了memset_s()的动机。
添加tox支持。
添加Travis和appveyor集成。
添加用于诊断目的的_capacity_bits、_rate_bits和_suffix属性。
pysha3 0.3
发布日期:2012年10月14日
修复64位大端支持
通过使用opt32实现添加64位SPARC机器上的对齐错误的工作区
block_size现在返回NotImplemented,以防止用户使用pysha3与hmac模块。
pysha3 0.2.2
发布日期:2012年10月7日
重新添加brg_endian.h以修复Solaris(大端平台)上的问题
pysha3 0.2.1
发布日期:2012年10月6日
修复MANIFEST.in以包括Makefile和tests.py
添加setup.py测试命令,并针对就地构建进行hack
增强README.txt并修复其标记
pysha3 0.2
发布日期:2012年10月6日
更改目录结构以使用与Python 3.4相同的目录布局。
从Keccak源中删除C++注释以实现ANSI C兼容性。
将所有Keccak函数和全局变量声明为静态,以避免名称冲突。
删除sha3_512()的别名sha3()。
添加block_size属性。Keccak具有内部sponge大小为1600位。
在SHA3_update()调用周围释放GIL。
对hashlib模块进行猴子补丁以支持,例如hashlib.sha3_512()和hashlib.new("sha3_512")
当数据超过一定大小时,在SHA3_update()周围释放GIL。
在具有无符号64位整数类型(uint64_t)的平台上的构建上修复问题。该模块回退到具有交织表的32位Keccak实现。
pysha3 0.1
发布日期:2012年10月4日
首次发布
基于KeccakReferenceAndOptimized-3.2.zip
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源分发
构建分发
pysha3-1.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fe988e73f2ce6d947220624f04d467faf05f1bbdbc64b0a201296bb3af92739e |
|
MD5 | 59cd2db7a9988c1f3f6aee40145e0c96 |
|
BLAKE2b-256 | 73bf978d424ac6c9076d73b8fdc8ab8ad46f98af0c34669d736b1d83c758afee |
哈希值 用于 pysha3-1.0.2-cp36-cp36m-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c7c2adcc43836223680ebdf91f1d3373543dc32747c182c8ca2e02d1b69ce030 |
|
MD5 | d397ef5a3332992fac7c29636f5cb7f1 |
|
BLAKE2b-256 | 322ab93e0c6d90c7c45e2fab35d7ef349e8c5bd7387a048e961b041fd9521556 |
哈希值 用于 pysha3-1.0.2-cp35-cp35m-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4416f16b0f1605c25f627966f76873e432971824778b369bd9ce1bb63d6566d9 |
|
MD5 | ddda02f0aa1d818d612689cfdc64dc9d |
|
BLAKE2b-256 | 4ba57eb00630fa4dc9751464faab8b5908706a4190a3ab2a37b2c03cabb2c9a8 |
哈希值 用于 pysha3-1.0.2-cp34-cp34m-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5ec8da7c5c70a53b5fa99094af3ba8d343955b212bc346a0d25f6ff75853999f |
|
MD5 | 0cc6c414d37bad1820b594adfd3bb56c |
|
BLAKE2b-256 | 2f925a82607ca24e298645941a5d5b8d69150980680ced2ec19840081181e2a7 |
哈希值 用于 pysha3-1.0.2-cp27-cp27mu-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 59111c08b8f34495575d12e5f2ce3bafb98bea470bc81e70c8b6df99aef0dd2f |
|
MD5 | 7fbb76ed9b48c0a49280110784b130ce |
|
BLAKE2b-256 | c5bb7d793dfab828e01adb46e3c5976fe99acda12a954c728427cceb2acd7ee9 |
哈希值 用于 pysha3-1.0.2-cp27-cp27m-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f9046d59b3e72aa84f6dae83a040bd1184ebd7fef4e822d38186a8158c89e3cf |
|
MD5 | 23bc371be3020a057055b55f1da95a7d |
|
BLAKE2b-256 | eabdf772ef2dc92494e5b78cb7c50f2a35a6d49153fd1ef5dd46a04b48462b43 |