慕工程0101907
2023-06-19 13:50:46
如果我有一個(gè)*x509.Certificate對象,我如何從中提取公鑰 base64 字符串表示形式?
1 回答

BIG陽
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
注意:如果您已經(jīng)擁有該對象,請?zhí)?strong>#3x509.Certificate
。
您需要執(zhí)行以下操作:
用 解碼 PEM?
pem.Decode()
。
block,?_?:=?pem.Decode([]byte(certPEM))
解析證書
x509.ParseCertificate()
。
cert,?_?:=?x509.ParseCertificate(block.Bytes)
用 封送公鑰
x509.MarshalPKIXPublicKey()
。
publicKeyDer,?_?:=?x509.MarshalPKIXPublicKey(cert.PublicKey)
使用 PEM 編碼結(jié)構(gòu)對其進(jìn)行編碼
pem.EncodeToMemory()
。
publicKeyBlock := pem.Block{
? ? Type:? "PUBLIC KEY",
? ? Bytes: publicKeyDer,
}
publicKeyPem := string(pem.EncodeToMemory(&publicKeyBlock))
在Go Playground上運(yùn)行
cert.pem如果使用以下命令將示例中的證書復(fù)制到文件中,則可以確認(rèn)結(jié)果:
openssl x509 -inform pem -in cert.pem -pubkey -noout
你應(yīng)該得到相同的結(jié)果!
- 1 回答
- 0 關(guān)注
- 166 瀏覽
添加回答
舉報(bào)
0/150
提交
取消