如何在Python中找到keccak 256哈希值

问题描述 投票:0回答:2

我正在使用 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']
    
python-2.7 cryptography keccak
2个回答
42
投票
  1. pycryptodomepip install pycryptodome

    
    

    from Crypto.Hash import keccak k = keccak.new(digest_bits=256) k.update('age') print k.hexdigest()
    
    
  2. pysha3pip install pysha3

    
    

    import sha3 k = sha3.keccak_256() k.update('age') print k.hexdigest()
    
    

请注意

    对于
  1. python3
    ,字符串需要以二进制形式传递
    k.update(b'age')
    
    
  2. 如果你想找到一个新的哈希值,你需要再次初始化
  3. k
    ,否则它将更新现有哈希值之上的值。
如果您同时拥有

sha3

pysha3
,则它将不起作用,因为 
import sha3
 将默认为 
sha3
 lib。

在线好用

工具


0
投票

使用我的库https://pypi.org/project/keccaky/

安全且易于使用的keccak

✅准备生产!!!

© www.soinside.com 2019 - 2024. All rights reserved.