在Python中解密PEM证书

2024-07-01 07:41:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python解密PEM证书。目前,我正在尝试使用加密x509来实现这一点。这是我的主管告诉我的,但是,由于他目前不在,我没有机会问他

我目前拥有的是:

from cryptography import x509
from cryptography.hazmat.backends import default_backend
import json

def uitlezen(message):
    c = x509.load_der_x509_certificate(message.read(), default_backend())
    print(c)
    return c

if __name__ == "__main__":
    en_cert = json.loads("example PEM")
    de_cert = uitlezen(en_cert)
    print(de_cert)

(它之所以会激活是有原因的,因为这是更大脚本的一部分)。 这会产生以下错误:

Traceback (most recent call last):
  File "path", line 11, in <module>
    en_cert = json.loads("-----BEGIN PRIVATE KEY-----MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDBj08sp5++4anGcmQxJjAkBgNVBAoTHVByb2dyZXNzIFNvZnR3YXJlIENvcnBvcmF0aW9uMSAwHgYDVQQDDBcqLmF3cy10ZXN0LnByb2dyZXNzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD...bml6YXRpb252YWxzaGEyZzIuY3JsMIGgBggrBgEFBQcBAQSBkzCBkDBNBggrBgEFBQcwAoZBaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3Nvcmdhz3P668YfhUbKdRF6S42Cg6zn-----END PRIVATE KEY-----")
  File "path", line 348, in loads
    return _default_decoder.decode(s)
  File "path", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "path", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我已经尝试过同样的方法,只是将en_cert(以及示例证书)作为字符串,如下所示:

from cryptography import x509
from cryptography.hazmat.backends import default_backend
import json

def uitlezen(message):
    c = x509.load_der_x509_certificate(message.read(), default_backend())
    print(c)
    return c

if __name__ == "__main__":
    en_cert = "example PEM" 
    de_cert = uitlezen(en_cert)
    print(de_cert)

这会产生以下错误:

Traceback (most recent call last):
  File "path", line 12, in <module>
    de_cert = uitlezen(en_cert)
  File "path", line 6, in uitlezen
    c = x509.load_der_x509_certificate(message.read(), default_backend())
AttributeError: 'str' object has no attribute 'read'

有人知道我应该如何通过PEM示例,使其解密吗


Tags: pathinfromimportbackendjsondefaultmessage

热门问题