如何验证公钥与私钥匹配?在应用程序启动时,从 base64 PEM 编码字符串加载 2048 位 RSA 密钥。我希望在继续之前验证密钥是否有效并且它们是否匹配。签名和验证由我正在使用的下划线库完成。我可以签署和验证虚拟数据,但我正在寻找替代解决方案。初学者游乐场: https: //play.golang.org/p/tsB8Yp-xs47
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
解决方案非常简单
func verifyKeyPair(private, public string) bool {
// Handle errors here
block, _ := pem.Decode([]byte(rsaPrivateKey))
key, _ := x509.ParsePKCS1PrivateKey(block.Bytes)
pubBlock, _ := pem.Decode([]byte(rsaPublicKey))
pubKey, _ := x509.ParsePKIXPublicKey(pubBlock.Bytes)
return key.PublicKey.Equal(pubKey)
}
https://play.golang.org/p/tR6Ns0wDrlN
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消