首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web3.utils.toHex()和web3.utils.keccak256()之间有什么区别?

web3.utils.toHex()和web3.utils.keccak256()之间有什么区别?
EN

Ethereum用户
提问于 2022-10-03 18:04:10
回答 1查看 123关注 0票数 1

我一直在练习Ethernaut,我被困在委托问题上了。

首先,我试图在控制台中处理这个问题。但我无法获得所有权。

代码语言:javascript
复制
var pwn = web3.utils.toHex("pwn()")
await contract.sendTransaction({data: pwn})

第二,我尝试了不同的方法。最后,我得到了所有权。

代码语言:javascript
复制
var pwn_function = web3.utils.keccak256("pwn()")
await contract.sendTransaction({data: pwn_function})

顺便问一下,第一种方法和第二种方法有什么区别?我可以在web3.js文档中找到web3.utils.toHex,但找不到web3.utils.keccak256。我错过了什么?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-10-03 18:15:26

toHexkeccak256的功能是完全不同的。

第一个简单地将一些东西(通常是一个数字)转换为十六进制格式。因此,它基本上对数据进行了不同的编码,但数据仍然完全相同--如果您愿意,可以将其转换回来。

第二种是计算给定数据的哈希值。您无法逆转该操作:无法从输出中获取输入。

我不知道为什么keccak256函数不能通过搜索web3js文档(https://web3js.readthedocs.io/en/v1.8.0/search.html?q=keccak256&check_keywords=yes&area=default)来找到。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/136817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档