当前位置: 首页 > 知识库问答 >
问题:

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

漆雕和昶
2023-03-14

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

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

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

首发操场:https://play.golang.org/p/tsB8Yp-xs47

共有1个答案

濮阳赞
2023-03-14

解决方案非常简单

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

 类似资料:
  • 另外,这里还有一个函数演示,它从mod和指数生成PEM(摘自http://stackoverflow.com/questions/18835132/xml-to-pem-in-node-js) 前面提到的jsonwebtoken库可以使用任何一种方法来验证JWT--但是为什么呢?如果这两种验证方法都可以验证一个JWT签名,为什么它们都存在呢?他们之间有什么权衡?一个比另一个更安全吗?我应该使用哪一

  • 我的理解是公钥加密,私钥解密...有谁能帮我弄明白吗?

  • 我正在使用这个库node jwks rsa从auth0 jwks获取JWT密钥。json文件,以验证我的应用程序在身份验证后检索的id_令牌实际上来自我的身份验证提供程序。 在引擎盖下,它使用此方法构建公钥PEM (使用x50c作为. jwks文件中的参数)。 然后,我将其与jsonwebToken结合使用,以验证JWT(id_token)是否有效。 这种验证方法与根据jwks的模和指数生成私钥(

  • 问题内容: 我有一个外部服务,在定义的事件发生后会给我回电,并用其私钥签署他的请求。 我已经存储了如下公钥: 因此,我的工作是通过验证签名来检查请求的内容是否未更改。 这是我的算法: 但是目前,我的算法已停止在此消息的“ PublicKey publicKey = keyFactory.generatePublic(publicKeySpec)”步骤处: 那么,如何以java api接受的方式加载

  • 我想知道如何使用公钥来验证私钥。 “<代码> <模数> 这是一个字符串,我试图使用Python验证它的私钥(也是作为字符串提供的)。我知道发行人和观众需要做什么,但我不确定如何处理所有这些信息。 我看了一些peoples使用各种包的例子,但我似乎不知道pub_key、private_key和message是什么类型...请帮帮我...我希望学习

  • 当我用OpenSSL生成RSA密钥对时,似乎私钥(私有指数)总是小于公钥(模)。它是由RSA设计的吗?