如何在 Python 中找到 keccak 256 哈希
How can I find keccak 256 hash in Python
我正在使用 Python 2.7,需要为 solidity 事件找到 keccak
哈希。但是我没有看到相同的默认库。
我安装了 sha3
但它似乎没有提供此功能。已尝试 pysha3 使用以下代码
import sha3
k = sha3.keccak_512()
k.update('age')
k.hexdigest()
但是出现错误
AttributeError: 'module' object has no attribute 'keccak_512'
sha3确实没有这个模块
>>> dir(sha3)
['SHA3224', 'SHA3256', 'SHA3384', 'SHA3512', 'SHAKE128', 'SHAKE256', '_SHA3Base', '_SHAKEBase', '__all__', '__author__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', '_sha3', 'binascii', 'copy', 'hashlib', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'shake128', 'shake256']
-
from Crypto.Hash import keccak
k = keccak.new(digest_bits=256)
k.update('age')
print k.hexdigest()
-
import sha3
k = sha3.keccak_256()
k.update('age')
print k.hexdigest()
请注意:
- 对于
python3
,字符串需要以二进制形式传递k.update(b'age')
- 如果你想找到一个新的散列,你需要再次初始化
k
否则它将更新现有散列之上的值。
如果您同时拥有 sha3
和 pysha3
,它将不起作用,因为 import sha3
将默认为 sha3
lib.
在线得心应手tool
我正在使用 Python 2.7,需要为 solidity 事件找到 keccak
哈希。但是我没有看到相同的默认库。
我安装了 sha3
但它似乎没有提供此功能。已尝试 pysha3 使用以下代码
import sha3
k = sha3.keccak_512()
k.update('age')
k.hexdigest()
但是出现错误
AttributeError: 'module' object has no attribute 'keccak_512'
sha3确实没有这个模块
>>> dir(sha3)
['SHA3224', 'SHA3256', 'SHA3384', 'SHA3512', 'SHAKE128', 'SHAKE256', '_SHA3Base', '_SHAKEBase', '__all__', '__author__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', '_sha3', 'binascii', 'copy', 'hashlib', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'shake128', 'shake256']
-
from Crypto.Hash import keccak k = keccak.new(digest_bits=256) k.update('age') print k.hexdigest()
-
import sha3 k = sha3.keccak_256() k.update('age') print k.hexdigest()
请注意:
- 对于
python3
,字符串需要以二进制形式传递k.update(b'age')
- 如果你想找到一个新的散列,你需要再次初始化
k
否则它将更新现有散列之上的值。
如果您同时拥有 sha3
和 pysha3
,它将不起作用,因为 import sha3
将默认为 sha3
lib.
在线得心应手tool