web3的sign_message生成的签名和dapp的消息签名不一样

签名消息 Add address to Aurora+. Security code: 388610.

sign_message生成的 0xfdc0c55bea3ccc51e8c1cba6e545968898da47eeee1e9c9a88064c0e876916515cd25f2f9bf868a9011ab75a7bffa4ac39c3bb5f9b6e9af7eda94115a555bedf1b

dapp生成的

0x131e5175c1863cc7004678cff92470424158d32b46cb99f88353c959e6d1d1bc5f4265031bc425e2fb61a3c06aa6fe692a5ae4266a3b2f55c1a3241000c7bc5e1b

同一个地址 同一个私钥 为什么会这样呀 是不是签名消息的明文需要转码?

请先 登录 后评论

最佳答案 2022-05-21 00:40

我猜测你应该使用 personal_sign 进行签名,它在消息中添加了一个前缀,可以防止恶意 DApp 签署任意数据(例如交易)并使用签名来冒充用户。

当然你也可以继续使用 sign_message 进行签名,但是消息必须按照指定格式:

sign_message(keccack256("\x19Ethereum Signed Message:\n" + len(message) + message)))

请先 登录 后评论

其它 1 个回答

张小雨 - 程序猿
请先 登录 后评论
  • 1 关注
  • 0 收藏,3004 浏览
  • 鲨鱼辣椒 提出于 2022-05-20 02:25