Ethereum web3js使用私钥对消息进行签名

Ethereum web3js使用私钥对消息进行签名,ethereum,web3js,Ethereum,Web3js,我尝试使用web3.eth.accounts.sign('hello','PrivateKey')对我的邮件进行签名,并使用web3.eth.accounts.recover(signatureObject)恢复地址 但它没有给我正确的地址。我正在使用web3版本:1.0.0-beta.34。有什么帮助吗?对我有用。你能分享完整的可运行代码吗?一个对我有效的快速测试:web3.eth.accounts.recover(web3.eth.accounts.sign('hello'、'0xc59d0

我尝试使用
web3.eth.accounts.sign('hello','PrivateKey')
对我的邮件进行签名,并使用
web3.eth.accounts.recover(signatureObject)
恢复地址
但它没有给我正确的地址。我正在使用web3版本:1.0.0-beta.34。有什么帮助吗?

对我有用。你能分享完整的可运行代码吗?一个对我有效的快速测试:
web3.eth.accounts.recover(web3.eth.accounts.sign('hello'、'0xc59d0e9549ee7b7b7e8da37cedfd195c2cd09d8a0e56af4c75e36088c80028834'))='0x6056b0757Ef1fdb34b59bBB666f41d52aa782f38'
注意,我在1.0.0-beta.35上,以防万一,这里面真的有一个bug。我尝试了这个
web3.eth.accounts.recover(web3.eth.accounts.sign('hello',web3.utils.toHex('832A51879E99EF04F2407E9E4C3DFC78FB032B00BB57DAEB2DEE8956E8908A91E'))='0x4766373359022375B004DF6A35DF225EDBB8C0'
。是因为我正在转换为十六进制吗?您错过了我之前评论中的
.toLowerCase()
。(我看到您现在使用的是不同的私钥,但添加
toLowerCase()
仍然适用于该私钥。)