web3.eth.personal.sign - 为数据生成签名

优质
小牛编辑
141浏览
2023-12-01

使用指定账户对数据进行签名。

注意,在未加密的HTTP连接上发送账户密码极其不安全!

调用:

web3.eth.personal.sign(dataToSign, address, password [, callback])

参数:

  • dataToSign:String - 要签名的数据。会先使用web3.utils.utf8ToHex()将字符串转化为16进制
  • address:String - 用来签名的账户地址
  • password:String - 用来签名的账户密码
  • callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个参数为结果签名

返回值:

一个Promise对象,其解析值为签名结果字符串。

示例代码:

web3.eth.personal.sign("Hello world", "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", "test password!")
.then(console.log);
> "0x30755ed65396facf86c53e6217c52b4daebe72aa4941d89635409de4c9c7f9466d4e9aaec7977f05e923889b33c0d0dd27d7226b6e6f56ce737465c5cfd04be400"

// 下面代码实现同样功能
web3.eth.personal.sign(web3.utils.utf8ToHex("Hello world"), "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", "test password!")
.then(console.log);
> "0x30755ed65396facf86c53e6217c52b4daebe72aa4941d89635409de4c9c7f9466d4e9aaec7977f05e923889b33c0d0dd27d7226b6e6f56ce737465c5cfd04be400"