如何在Python中找到keccak 256哈希

gar*_*may 3 cryptography python-2.7 keccak

我正在使用Python 2.7并且需要keccak为solidity事件找到哈希.但是,我没有看到相同的默认库.

我安装sha3但它似乎没有提供此功能.用下面的代码尝试了pysha3

  import sha3
  k = sha3.keccak_512()
  k.update('age')
  k.hexdigest()
Run Code Online (Sandbox Code Playgroud)

但得到了错误

AttributeError: 'module' object has no attribute 'keccak_512'
Run Code Online (Sandbox Code Playgroud)

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']
Run Code Online (Sandbox Code Playgroud)

gar*_*may 9

1)pycryptodome

  from Crypto.Hash import keccak
  keccak_hash = keccak.new(digest_bits=256)
  keccak_hash.update('age')
  print keccak_hash.hexdigest()
Run Code Online (Sandbox Code Playgroud)

2)pysha3

import sha3
k = sha3.keccak_256()
k.update('age')
print k.hexdigest()
Run Code Online (Sandbox Code Playgroud)

pysha3因为我已经安装了两个sha3pysha3库,所以没有工作,所以import sha3优先考虑sha3 lib.

在线方便的工具

  • 对于试图将其用于以太坊的ppl:hashlib不会返回正确的哈希值,pycryptodome是您想要的哈希值! (2认同)