【问题标题】:How to convert a public RSA key to JSON Web Key如何将公共 RSA 密钥转换为 JSON Web 密钥
【发布时间】:2020-07-05 22:21:38
【问题描述】:

我有一个这样的 pem 格式的 RSA 公钥,我想将其转换为 JSON Web 密钥。

RSA:

-----BEGIN PUBLIC KEY-----

 MIGfMA0GCSqGSIb3DQEBAQUBB4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0
 FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/
 3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQAB

-----END PUBLIC KEY-----

JWK:

{"keys":[{"kty":"RSA","kid":"201","use":"sig","alg":"RS256","n":"gslsSwlsweQKOG5sHLJEZ8-
_cWBTiMhuEc59ETC1raGKRmjYcp2UQulzyHC5it30JEfITQGScDeRefNw9pdsG2CEM0wBqji8ib_HEbVm1JjQZNqHxv4
2I6LeK2O2qaDcePcM9DlpAuprnJndhElk0NuRO_Q6vl8WQT7g1TlSxLWxcUgyuK8YmYNThgSkX9Y47oCDX3bFkH60YG6c4IcWHJPRKb
X5rgnTe8hGflfR3k","e":"AQAB"}]}

我在 Go 中找不到成功的方法。

【问题讨论】:

标签: go cryptography rsa jwk


【解决方案1】:

这里是:

   pubKey, err := ioutil.ReadFile("pathToPublicKey")
    if err != nil {
        log.Printf("key not found", err)
        return err
    }

    pubPem, _ := pem.Decode(pubKey)

    pub, _ := x509.ParsePKCS1PrivateKey(pubPem.Bytes)

    set, err := jwk.New(pub)
    if err != nil {
        log.Printf("failed to convert to JWK: %s", err)
        return err
    }

    err = jwk.AssignKeyID(set)
    if err != nil {
        log.Printf("failed to assign kid: %s", err)
        return err
    }

我使用了这个包: godoc.org/github.com/lestrrat/go-jwx/jwk

【讨论】:

  • 感谢 Javad,我会检查并通知您
猜你喜欢
  • 1970-01-01
  • 2015-09-08
  • 2015-11-18
  • 2023-01-17
  • 1970-01-01
  • 2018-07-16
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
相关资源
最近更新 更多