generated at
ecsign を使用してメッセージに署名する
この例では、ethereumjs-util を使用しています。
piyopiyo! というメッセージに ecsign を使用して署名をする例を紹介します。

署名の手順
1. メッセージ の Keccak ハッシュを得ます
2. ecsign を使用して、メッセージのハッシュに署名をします。

アウトプット
署名により、署名の検証に必要な値 r , s , v を得ることができます。

サンプルコード
example.js
const EthUtil = require('ethereumjs-util') // 秘密鍵の文字列 const PRIVATE_KEY_STRING = '0x61ce8b95ca5fd6f55cd97ac60817777bdf64f1670e903758ce53efc32c3dffeb' // メッセージ const MSG = "piyopiyo!" // 秘密鍵の文字列からバッファを取得 const privateKey = EthUtil.toBuffer(PRIVATE_KEY_STRING) // メッセージ の Keccak ハッシュを得ます。 const msgHash = EthUtil.sha3(MSG) console.log(EthUtil.bufferToHex(msgHash)) // => 0xb826be27896975a66f168f81f553fe0b2f87599d63d01c3b93c1a8a6f2243e5d // ecsign を使用してメッセージのハッシュに署名します。 const signedMsg = EthUtil.ecsign(msgHash, privateKey) // r console.log(EthUtil.bufferToHex(signedMsg.r)) // => 0xdd7fa0d0b259468434cf14760c6607f36f2d7429feaaaedf6d86265c11098d20 // s console.log(EthUtil.bufferToHex(signedMsg.s)) // => 0x14cf83d2204e50b12fcb2445a70c214509d0f4edf0e0ee6e8d18fed8fbb146c0 // v console.log(signedMsg.v) // => 27

関連
JavaScript を使用して署名を検証する方法はこちら
Solidity を使用して署名を検証する方法はこちら