2017-07-18 63 views
3

我想在python中實現sha-3。下面給出的代碼是我如何實現它。但我一次又一次地得到下面的錯誤。在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' 

以下鏈接可供參考。 https://pypi.python.org/pypi/pysha3

回答

3

這裏有兩個問題:一個來自您的代碼,另一個來自文檔,其中包含您想要使用的函數的拼寫錯誤。

您正在調用不存在於hashlib庫中的函數。您希望從模塊sha3調用函數sha3_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 
+0

沒有ü嘗試這個怎麼我再次 – saki

+0

對不起@saki得到了同樣的錯誤,我的回答是一半的權利,我已經修好了。 –

+0

謝謝你現在可以正常工作 – saki