golang 公钥转换为PEM
时间: 2023-11-02 21:54:32 浏览: 211
要将公钥转换为 PEM 格式,你可以使用 Go 语言中的 `encoding/pem` 包。以下是一个示例代码,它将公钥转换为 PEM 格式并输出到标准输出:
```go
package main
import (
"crypto/rsa"
"crypto/x509"
"encoding/pem"
"fmt"
)
func main() {
// 公钥字节
publicKeyBytes := []byte(`-----BEGIN PUBLIC KEY-----
YOUR_PUBLIC_KEY_HERE
-----END PUBLIC KEY-----`)
// 解码公钥
block, _ := pem.Decode(publicKeyBytes)
if block == nil {
fmt.Println("Failed to decode public key")
return
}
// 解析公钥
publicKey, err := x509.ParsePKIXPublicKey(block.Bytes)
if err != nil {
fmt.Println("Failed to parse public key:", err)
return
}
// 转换为 RSA 公钥类型
rsaPublicKey, ok := publicKey.(*rsa.PublicKey)
if !ok {
fmt.Println("Not an RSA public key")
return
}
// 将公钥转换为 PEM 格式
pemBytes := pem.EncodeToMemory(&pem.Block{
Type: "RSA PUBLIC KEY",
Bytes: x509.MarshalPKCS1PublicKey(rsaPublicKey),
})
// 输出 PEM 格式的公钥
fmt.Println(string(pemBytes))
}
```
请将 `YOUR_PUBLIC_KEY_HERE` 替换为你的实际公钥内容。
运行上述代码将输出一个表示公钥的 PEM 格式字符串。你可以根据需要将其保存到文件或进行其他处理。
阅读全文