【发布时间】:2018-09-07 00:25:23
【问题描述】:
我正在尝试在 Python 中生成与 Solidity 生成的相同的 sha3.keccak_256 整数值。
Solidity 的作用如下:
pragma solidity ^0.4.18;
contract GenerateHash{
function generateHashVal(int id, int date) pure public returns (bytes32){
//Using values - (123,1522228250);
return keccak256(id,date);
}
}
由此产生的哈希为0xdf4ccab87521641ffc0a552aea55be3a0c583544dc761541784ec656668f4c5a
但在 Python3 中,我无法为整数值生成相同的值。如果我将它类型转换为字符串,那么我可以获得一些值,但这与 Solidity 的值不匹配:
>>> s=sha3.keccak_256(repr(data).encode('utf-8')).hexdigest()
>>> print(s)
37aafdecdf8b7e9da212361dfbb20d96826ae5cc912ac972f315228c0cdc51c5
>>> print(data)
1231522228250
感谢任何帮助。
【问题讨论】:
标签: python-3.x solidity sha-3 remix