personal_sign
sign
方法计算指定消息的以太坊特定的签名,计算方法如下:
sign(keccack256("\x19Ethereum Signed Message:\n" + len(message) + message))).
通过添加消息前缀,从而让结果可以被识别以太坊特定的签名格式。这避免了一个恶意的 DApp对任意数据(例如交易)进行签名并使用签名冒充受攻击者。
使用ecRecover方法来验证签名。
调用方法
Geth控制台:
personal.sign(message, account, [password])
JSON RPC:
{"method": "personal_sign", "params": [message, account, password]}
示例代码
下面的示例在Geth控制台使用sign方法对指定消息进行签名:
> personal.sign("0xdeadbeaf", "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "")
"0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"