概述: 用Go生成whisper密钥对的。

生成 Whisper 密匙对

在Whisper中,消息必须使用对称或非对称密钥加密,以防止除预期接收者以外的任何人读取消息。

在连接到Whisper客户端后,您需要调用客户端的NewKeyPair方法来生成该节点将管理的新公共和私有对。 此函数的结果将是一个唯一的ID,它引用我们将在接下来的几节中用于加密和解密消息的密钥对。

  1. keyID, err := client.NewKeyPair(context.Background())
  2. if err != nil {
  3. log.Fatal(err)
  4. }
  5. fmt.Println(keyID) // 0ec5cfe4e215239756054992dbc2e10f011db1cdfc88b9ba6301e2f9ea1b58d2

下一章节 让我们学习如何发送一个加密的消息。

完整代码

Commands

  1. geth --rpc --shh --ws

whisper_keypair.go

  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. "log"
  6. "github.com/ethereum/go-ethereum/whisper/shhclient"
  7. )
  8. func main() {
  9. client, err := shhclient.Dial("ws://127.0.0.1:8546")
  10. if err != nil {
  11. log.Fatal(err)
  12. }
  13. keyID, err := client.NewKeyPair(context.Background())
  14. if err != nil {
  15. log.Fatal(err)
  16. }
  17. fmt.Println(keyID) // 0ec5cfe4e215239756054992dbc2e10f011db1cdfc88b9ba6301e2f9ea1b58d2
  18. }