如何验证公钥是否匹配私钥签名?

如何验证公钥与私钥匹配?

在应用程序启动时,从 base64 PEM 编码字符串加载 2048 位 RSA 密钥。我希望在继续之前验证密钥是否有效并且它们是否匹配。签名和验证由我正在使用的下划线库完成。

我可以签署和验证虚拟数据,但我正在寻找替代解决方案。

初学者游乐场: https: //play.golang.org/p/tsB8Yp-xs47


桃花长相依
浏览 107回答 1
1回答

子衿沉夜

解决方案非常简单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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go