Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python实现中的Sha-3_Python_Sha 3_Keccak - Fatal编程技术网

python实现中的Sha-3

python实现中的Sha-3,python,sha-3,keccak,Python,Sha 3,Keccak,我试图用python实现sha-3。下面给出的代码是我如何实现它的。但是我一次又一次地遇到下面的错误 import sys import hashlib arg1 = sys.argv[1] with open(arg1, 'r') as myfile: data=myfile.read().replace('\n', '') import sha3 s=hashlib.sha3_228(data.encode('utf-8')).hexdigest() print(s) 下面的错

我试图用python实现sha-3。下面给出的代码是我如何实现它的。但是我一次又一次地遇到下面的错误

import sys 
import hashlib
arg1 = sys.argv[1]
with open(arg1, 'r') as myfile:
     data=myfile.read().replace('\n', '')
import sha3
s=hashlib.sha3_228(data.encode('utf-8')).hexdigest()
print(s)
下面的错误是我执行它时得到的

Traceback (most recent call last):
File "sha3.py", line 6, in <module>
import sha3
File "/home/hello/Documents/SHA-3/sha3.py", line 7, in <module>
s=hashlib.sha3_228(data.encode('utf-8')).hexdigest()
AttributeError: 'module' object has no attribute 'sha3_228'
回溯(最近一次呼叫最后一次):
文件“sha3.py”,第6行,在
进口沙三
文件“/home/hello/Documents/SHA-3/sha3.py”,第7行,在
s=hashlib.sha3_228(data.encode('utf-8')).hexdigest()
AttributeError:“模块”对象没有属性“sha3_228”
以下链接可供参考。
这里有两个问题:一个来自代码,另一个来自文档,其中包含您想要使用的函数的键入错误

您正在调用
hashlib
库中不存在的函数。您想从模块
sha3
调用函数
sha3\u 228
,该模块随软件包
pysha3
一起提供。事实上,
sha3_228
并不存在,存在的是
sha3_224

只需将
hashlib.sha3_228
替换为
sha3.sha3_224

并确保已使用命令安装了
pysha3

python -m pip install pysha3
这里有一个例子

import sha3
data='maydata'
s=sha3.sha3_224(data.encode('utf-8')).hexdigest()
print(s)
# 20faf4bf0bbb9ca9b3a47282afe713ba53c9e243bc8bdf1d670671cb

我也有同样的问题。我首先自行安装了sha3。那不行。然后我安装了pysha3,但它仍然无法工作。我最终卸载了sha3和PYSA3。然后我重新安装了pysha3,它工作得很好。

这里有一个小提示:Python3.6(以及一些其他添加的算法)支持Sha3。您正在尝试使用它,而不是实现它。实现意味着编写执行实际哈希计算的代码。那不是你在这里做的。