gpt4 book ai didi

python - 读取 PEM 字符串时出现 PyAsn1 错误

转载 作者:行者123 更新时间:2023-11-28 16:36:41 24 4
gpt4 key购买 nike

我正在尝试在 Python 中读取 PEM 编码的公钥。我尝试了多个键和多种可能的解决方案。我试过 base64 解码它,其他格式,等等......

我真的不知道该怎么办了(因为我从昨天开始就遇到了这个问题)。

我得到的错误:

Traceback (most recent call last):
File "I:/path/Main.py", line 6, in <module>
-----END RSA PUBLIC KEY-----""", format='PEM')
File "C:\Python34\lib\site-packages\rsa-3.1.4-py3.4.egg\rsa\key.py", line 65, in load_pkcs1
File "C:\Python34\lib\site-packages\rsa-3.1.4-py3.4.egg\rsa\key.py", line 192, in _load_pkcs1_pem
File "C:\Python34\lib\site-packages\rsa-3.1.4-py3.4.egg\rsa\key.py", line 160, in _load_pkcs1_der
File "C:\Python34\lib\site-packages\pyasn1-0.1.7-py3.4.egg\pyasn1\codec\ber\decoder.py", line 792, in __call__
File "C:\Python34\lib\site-packages\pyasn1-0.1.7-py3.4.egg\pyasn1\codec\ber\decoder.py", line 321, in valueDecoder
File "C:\Python34\lib\site-packages\pyasn1-0.1.7-py3.4.egg\pyasn1\codec\ber\decoder.py", line 798, in __call__
pyasn1.error.PyAsn1Error: TagSet(Tag(tagClass=0, tagFormat=32, tagId=16)) not in asn1Spec: {TagSet(Tag(tagClass=0, tagFormat=0, tagId=2)): Integer()}/{}

我的代码:

pubkey = rsa.PublicKey.load_pkcs1(b"""-----BEGIN RSA PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANkHLKYS2dByWQ3gKjQDvQbuWb/2Y9z4
eYuLEfgXdiP5qc5cG/5c+c/GgIl6yQY7AYeZVXiBXLaGzxiLZ5Y4fi0CAwEAAQ==
-----END RSA PUBLIC KEY-----""", format='PEM')
crypto = rsa.encrypt("Secret", pubkey)

Screen RSA Documentations

最佳答案

我不确定自己做得对不对。但至少在没有错误的情况下进行加密。

import rsa
pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(b"""-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANkHLKYS2dByWQ3gKjQDvQbuWb/2Y9z4
eYuLEfgXdiP5qc5cG/5c+c/GgIl6yQY7AYeZVXiBXLaGzxiLZ5Y4fi0CAwEAAQ==
-----END PUBLIC KEY-----""")
crypto = rsa.encrypt(b"Secret", pubkey)

注意:我将 BEGIN RSA PUBLIC KEY 更改为 BEGIN PUBLIC KEY。 (与 END RSA PUBLIC KEY 相同)。我使用了 load_pkcs1_openssl_pem

更新

传递 bytes 对象而不是 str(特别是如果您在 Python 3.x 中运行它)。

关于python - 读取 PEM 字符串时出现 PyAsn1 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25243761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com