擅长:python、mysql、java
<p>您发现的pysha3模块是基于SHA-3规范的<em>草案</em>的,在它被标准化之前。在</p>
<p>该模块是作为<a href="http://bugs.python.org/issue16113" rel="nofollow">Python issue 16113</a>的POC创建的,代码自2012年以来一直没有更新。NIST标准直到2015年10月才最终确定。因此,如果您希望实现遵循发布的标准,就不能使用它。在</p>
<p>该票证链接到一个声明已更新为标准的实现:<a href="https://github.com/bjornedstrom/python-sha3" rel="nofollow">https://github.com/bjornedstrom/python-sha3</a>。该软件包似乎没有在PyPI上列出,但可以直接从GitHub与pip一起安装:</p>
<pre><code>pip install git+https://github.com/bjornedstrom/python-sha3
</code></pre>
<p>而这个方案确实产生了预期的结果:</p>
^{pr2}$
<p>此包不修补内置的<code>hashlib.new()</code>构造函数,但通过将构造函数插入模块缓存可以轻松完成:</p>
<pre><code>>>> hashlib.__builtin_constructor_cache['sha3_512'] = sha3.sha3_512
>>> hashlib.new('sha3_512')
<sha3.SHA3512 object at 0x10b381a90>
</code></pre>