如果我计算出以下坚实度0.6.3:
bytes memory secretSalt = "abc";
hashedSecret = sha256(abi.encodePacked(secretSalt))我得到的结果"0xba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad“与我输入"abc”时在两个在线SHA256生成器上得到的结果相匹配(不过,如果没有引号,请参阅这里和这里)。
但如果我试着
uint secretNumber = 5;
hashedSecret = sha256(abi.encodePacked(secretNumber));结果是"0x96de8fc8c256fa1e1556d41af431cace7dca68707c78dd88c3acab8b17164c47“,它与那些在线SHA256生成器不匹配。我在在线SHA256生成器上尝试了5的各种十六进制表示,但仍然不能得到“0x96de.”
对于相对于这些常见的SHA256实现来说,"uint 5“这个数字是如何转化的,有什么想法吗?
发布于 2020-04-25 22:39:36
uint类型的长度为32字节,因此uint(5)以十六进制形式存储为0000000000000000000000000000000000000000000000000000000000000005。
为了测试这个输入,您需要一个接受十六进制输入的计算器,许多只接受文本字符串。
https://ethereum.stackexchange.com/questions/82797
复制相似问题