go 生成 License 公钥 私钥

简介: go 生成 License 公钥 私钥

请注意,一个公钥可以对应多个私钥

package main
 import (
  "crypto/rand"
  "crypto/rsa"
  "crypto/x509"
  "encoding/pem"
  "fmt"
  "log"
  "os"
)
 func main() {
  // 生成 RSA 密钥对
  privateKey, err := rsa.GenerateKey(rand.Reader, 2048)
  if err != nil {
    log.Fatalf("无法生成私钥:%v", err)
  }
  // 从私钥中导出公钥
  publicKey := &privateKey.PublicKey
  // 将私钥编码为 PEM 格式
  privateKeyPem := &pem.Block{
    Type:  "RSA PRIVATE KEY",
    Bytes: x509.MarshalPKCS1PrivateKey(privateKey),
  }
  // 将公钥编码为 PEM 格式
  publicKeyBytes, err := x509.MarshalPKIXPublicKey(publicKey)
  if err != nil {
    log.Fatalf("无法导出公钥:%v", err)
  }
  publicKeyPem := &pem.Block{
    Type:  "PUBLIC KEY",
    Bytes: publicKeyBytes,
  }
  // 将私钥和公钥写入文件
  privateKeyFile, err := os.Create("private.pem")
  if err != nil {
    log.Fatalf("无法创建私钥文件:%v", err)
  }
  defer privateKeyFile.Close()
  pem.Encode(privateKeyFile, privateKeyPem)
  publicKeyFile, err := os.Create("public.pem")
  if err != nil {
    log.Fatalf("无法创建公钥文件:%v", err)
  }
  defer publicKeyFile.Close()
  pem.Encode(publicKeyFile, publicKeyPem)
  fmt.Println("公钥和私钥已生成并保存到 public.pem 和 private.pem 文件中。")
}
目录
相关文章
|
7月前
|
Go 数据安全/隐私保护
Go License 公钥 私钥 加密 解密
Go License 公钥 私钥 加密 解密
77 0
|
Go
go 生成 License 公钥 私钥
go 生成 License 公钥 私钥
145 0
|
15天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
26 7
|
15天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
15天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
92 71
|
14天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
100 67
|
17天前
|
Go 索引
go语言for遍历数组或切片
go语言for遍历数组或切片
88 62
|
19天前
|
并行计算 安全 Go
Go语言中的并发编程:掌握goroutines和channels####
本文深入探讨了Go语言中并发编程的核心概念——goroutine和channel。不同于传统的线程模型,Go通过轻量级的goroutine和通信机制channel,实现了高效的并发处理。我们将从基础概念开始,逐步深入到实际应用案例,揭示如何在Go语言中优雅地实现并发控制和数据同步。 ####
|
15天前
|
存储 Go
go语言中映射
go语言中映射
32 11
|
17天前
|
Go
go语言for遍历映射(map)
go语言for遍历映射(map)
29 12