【问题标题】:How to verify if a public key matched private key signature?如何验证公钥是否匹配私钥签名?
【发布时间】:2020-11-16 14:44:17
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: go cryptography rsa


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多