跳转到主要内容

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日

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 (829.2 kB 查看哈希值)

上传时间

构建分发

pysha3-1.0.2-cp36-cp36m-win_amd64.whl (35.9 kB 查看哈希值)

上传时间 CPython 3.6m Windows x86-64

pysha3-1.0.2-cp36-cp36m-win32.whl (22.2 kB 查看哈希值)

上传时间 CPython 3.6m Windows x86

pysha3-1.0.2-cp36-cp36m-manylinux1_x86_64.whl (127.4 kB 查看哈希值)

上传时间 CPython 3.6m

pysha3-1.0.2-cp36-cp36m-manylinux1_i686.whl (56.2 kB 查看哈希值)

上传时间 CPython 3.6m

pysha3-1.0.2-cp35-cp35m-win_amd64.whl (35.9 kB 查看哈希值)

上传时间 CPython 3.5m Windows x86-64

pysha3-1.0.2-cp35-cp35m-win32.whl (22.2 kB 查看哈希值)

上传时间 CPython 3.5m Windows x86

pysha3-1.0.2-cp35-cp35m-manylinux1_x86_64.whl (127.3 kB 查看哈希值)

上传时间 CPython 3.5m

pysha3-1.0.2-cp35-cp35m-manylinux1_i686.whl (56.0 kB 查看哈希值)

上传时间 CPython 3.5m

pysha3-1.0.2-cp34-cp34m-win_amd64.whl (36.2 kB 查看哈希值)

上传时间 CPython 3.4m Windows x86-64

pysha3-1.0.2-cp34-cp34m-win32.whl (21.8 kB 查看哈希值)

上传于 CPython 3.4m Windows x86

pysha3-1.0.2-cp34-cp34m-manylinux1_x86_64.whl (128.8 kB 查看哈希值)

上传于 CPython 3.4m

pysha3-1.0.2-cp34-cp34m-manylinux1_i686.whl (57.3 kB 查看哈希值)

上传于 CPython 3.4m

pysha3-1.0.2-cp33-cp33m-win_amd64.whl (36.2 kB 查看哈希值)

上传于 CPython 3.3m Windows x86-64

pysha3-1.0.2-cp33-cp33m-win32.whl (21.8 kB 查看哈希值)

上传于 CPython 3.3m Windows x86

pysha3-1.0.2-cp27-cp27mu-manylinux1_x86_64.whl (127.8 kB 查看哈希值)

上传于 CPython 2.7mu

pysha3-1.0.2-cp27-cp27mu-manylinux1_i686.whl (56.8 kB 查看哈希值)

上传于 CPython 2.7mu

pysha3-1.0.2-cp27-cp27m-win_amd64.whl (36.3 kB 查看哈希值)

上传于 CPython 2.7m Windows x86-64

pysha3-1.0.2-cp27-cp27m-win32.whl (20.1 kB 查看哈希值)

上传于 CPython 2.7m Windows x86

pysha3-1.0.2-cp27-cp27m-manylinux1_x86_64.whl (127.8 kB 查看哈希值)

上传于 CPython 2.7m

pysha3-1.0.2-cp27-cp27m-manylinux1_i686.whl (56.8 kB 查看哈希值)

上传于 CPython 2.7m

由以下支持