微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python,将 RSA-256 公钥加载到代码中

如何解决Python,将 RSA-256 公钥加载到代码中

我正在尝试在 Python 中加载 RSA-256 中的公钥。

public_key=Out[24]: '-----BEGIN CERTIFICATE-----\nMIIEYTCCA0mgAwIBAgIOAXdD+6OnAAAAACcBwuUwDQYJKoZIhvcNAQELBQAweTER\nMA8GA1UEAwwIQWxkZXJhYW4xGDAWBgNVBAsMDzAwRDBDMDAwMDAwOGV6UDEXMBUG\nA1UECgwOU2FsZXNmb3JjZS5jb20xFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xCzAJ\nBgNVBAgMAkNBMQwwCgYDVQQGEwNVU0EwHhcNMjEwMTI3MTMxNTAwWhcNMjIwMTI3\nMTIwMDAwWjB5MREwDwYDVQQDDAhBbGRlcmFhbjEYMBYGA1UECwwPMDBEMEMwMDAw\nMDA4ZXpQMRcwFQYDVQQKDA5TYWxlc2ZvcmNlLmNvbTEWMBQGA1UEBwwNU2FuIEZy\nYW5jaXNjbzELMAkGA1UECAwCQ0ExDDAKBgNVBAYTA1VTQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQocggEBAN0KKolUflB1/wZDnFScGkFf1SkoeuOFPw+UURCz\nc8tPLOLPLIt/qkUBt5X8ptCVuWfIoscrj4my25xW9c21d4cxTM7wlUDunoH2lohu\n4KbrpOoGJ0HelsPV9BV3RKuj/hDsypS5StW1RLUZYBOUFRQaQPB7drb1KUYqUV1q\nXbf/gWm9TGq5vQS29LZYDgW+T+6xBGltqNtlNAPRUbShQusmtizZM8v54zbtSjaP\nWHdZ4S1VWqSt+03JRobEIMBHr2L2otsAXOBfaBUqVkGDi8b1YynBOa0A+6cogq9x\nb3xH6fW+RTvTyA9VkptcFfWO+ePOTqkR+f8ObhO1if94c50CAwEAAaOB5jCB4zAd\nBgNVHQ4EFgQUMj3VA9/H7zXx8UsOCAuQuRQGLkswDwYDVR0TAQH/BAUwAwEB/zCB\nsAYDVR0jBIGoMIGlgBQyPdUD38fvNfHxSw4IC5C5FAYuS6F9pHsweTERMA8GA1UE\nAwwIQWxkZXJhYW4xGDAWBgNVBAsMDzAwRDBDMDAwMDAwOGV6UDEXMBUGA1UECgwO\nU2FsZXNmb3JjZS5jb20xFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xCzAJBgNVBAgM\nAkNBMQwwCgYDVQQGEwNVU0GCDgF3Q/ujpwAAAAAnAcLlMA0GCSqGSIb3DQEBCwUA\nA4IBAQDPkaJgi7mqMmhwz7x7q7LssZiuuenYMzFWewry6SZmjqZwLWvxhSWLmog9\nkeNQH7nAbI+6KrMHJ36LPJdD+zbNYQaz8S9qW8HBVOap/J6wKYOC6h/dtKLcfmbt\nZlCyCy6SJv0mDQyxMVyq6gybjRrBnNcoy/hTAEQNhmHL6aZ7E2/eX/EOD1Y1EHWl\nmFqmtpST36F9Y2WaYpKVwBPcZqcwxPpGrJ95FfxR+kkA84Ke3SZ/RHHkZzexcOOR\n5YLaIZf9sVzslSsLrt6uaFMQOdTT5kY1CvCMHaw3j/kDrIpladwyfzhmVgUVx1D3\nxF5JnmOe6qhhyPwRMg7Myw7KIfF5\n-----END CERTIFICATE-----'

encoded = <my jwt token>
import jwt
decoded = jwt.decode(encoded,public_key,algorithms=["RS256"])

这引发了以下错误

ValueError: Could not deserialize key data.

所以我尝试以不同的方式加载公钥:

from Crypto.PublicKey import RSA
pub_key = RSA.importKey(public_key)

其中提出:

ValueError: RSA key format is not supported

此外,当我尝试将其加载到二进制文件 (b'----- ...) 时,也会引发相同的错误

更新:

设法使用 pycryptodome 创建 RSA 对象:

from Crypto.PublicKey.RSA import import_key
key = import_key(public_key)

但是在运行时:

decoded = jwt.decode(encoded,key,algorithms=["RS256"])

我得到:

TypeError: Expecting a PEM-formatted key.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。