web3.personal.ecRecover不起作用
问题描述:
我想让web3.personal.ecRecover工作。 这是我的设置:web3.personal.ecRecover不起作用
的Chrome使用混音IDE
MetaMask注入web3.js
现在我想要在Chrome浏览器开发控制台下面的命令:
msg = web3.sha3('Schoolbus')
web3.eth.sign(web3.eth.accounts[0], msg , function(error, result){
if(!error)
console.log(result)
else
console.error(error);
})
返回:
0xd030d9a04df643f62a1502b017f51c41a659268091abbd20e2de97b935724d7c
现在我设置:
signature = "0x36f32cbd6133ce6be7efa4cb73ff3f9ddf9b7db3ba15fa543ab0a93d04a96c102693739f946f2d89eca9030b4c8e01bb6fada1c23f05b6a4956dd63deaf187501b"
,并尝试:
web3.personal.ecRecover(msg,signature, function(error, result){
if(!error)
console.log(result)
else
console.error(error);
})
,并得到:
0xcc3f70c6caa9fee58bab68f292bdf3132c3c9ae2
显然,这不是我用公共地址(即WEB3 .eth.accounts [0])
有关改进此代码的任何建议? 谢谢!
小号
答
您应该使用的web3.personal.sign
代替web3.eth.sign
https://web3js.readthedocs.io/en/1.0/web3-eth-personal.html#sign
尚不支持与它的支持元面膜 – centriq
。 https://medium.com/metamask/the-new-secure-way-to-sign-data-in-your-browser-6af9dd2a1527 – SylTi