如何在Python中找到keccak 256哈希

时间:2017-09-18 12:18:27

标签: python-2.7 cryptography keccak

我正在使用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']

1 个答案:

答案 0 :(得分:8)

1)pycryptodome

  from Crypto.Hash import keccak
  keccak_hash = keccak.new(digest_bits=256)
  keccak_hash.update('age')
  print keccak_hash.hexdigest()

2)pysha3

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

pysha3因为我安装了sha3pysha3库而无法正常工作,因此import sha3优先考虑sha3 lib。

在线便捷tool