问题描述
我正在尝试用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使其解密吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)