首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用web3js签名消息?

如何使用web3js签名消息?
EN

Ethereum用户
提问于 2021-09-21 06:26:04
回答 1查看 1.8K关注 0票数 1

我知道我可以使用web3js来签署一条消息,但是我不知道如何才能做到这一点,那么如何使用ecrecover()来验证签名呢?

EN

回答 1

Ethereum用户

发布于 2021-09-21 15:33:26

您可以使用元请求对事务进行签名,请参阅它们的示例

https://docs.metamask.io/guide/signing-data.html#sign-typed-data-v4

基本上这些步骤是,

代码语言:javascript
复制
const keep_it_hidden = process.env.Key; // this is a private key

const CHAINID = 1;
const hash_data =  web3.utils.soliditySha3(CHAINID, accounts[0] , "some data" ); // any data you want the func to hash
const sign = await web3.eth.accounts.sign(hash_data, keep_it_hidden )['signature'] // sign the hashed data

现在,在smart合同中从OpenZeppelin导入椭圆曲线数字签名算法(ECDSA)操作,您可以使用recover方法和toEthSignedMessageHash运行sign as signature来散列合同中的消息。

https://github.com/OpenZeppelin/openzeppelin-contracts/blob/6af4ed6169ee4165ce86457f98c0a568bd9d7491/contracts/utils/cryptography/ECDSA.sol#L99

我希望这是清楚的

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

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

复制
相关文章

相似问题

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