gpt4 book ai didi

python - 如何在 Python 中使用 ASN1 库解码 .BER

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:45 24 4
gpt4 key购买 nike

我有一个 .BER 格式的编码文件,但无法解码。

经过搜索,我发现我需要使用 ASN1 库才能解码该文件并使其可读。

有人可以指导我如何在 python 上使用 ASN1 库解码 .BER 文件吗?

我上网查了一下,发现有一些在线 ASN1 解码器可以正确解码我的文件。但是,我将无法使用它们,因为我需要自己解码,而不是使用在线工具。我不知道如何在下面的脚本中获取这个标签和值。

导入asn1 进口再 导入操作系统 进口 future Input_directory=open("D:\Encoded_Nokia.ber","rb")

对于输入目录中的行: 解码器 = asn1.Decoder() 输出=解码器.start(行) 标签,输出=decoder.read()

这些是我得到的错误:

  File "C:\Python34\lib\site-packages\asn1.py", line 421, in read
value = self._read_value(tag.nr, length)
File "C:\Python34\lib\site-packages\asn1.py", line 508, in _read_value
bytes_data = self._read_bytes(length)
File "C:\Python34\lib\site-packages\asn1.py", line 541, in _read_bytes
raise Error('Premature end of input.')
asn1.Error: Premature end of input.

最佳答案

BER 可以对某些构造的数据值使用不定长度编码。您收到的错误表明您将截断的字节传递到解码器中。这意味着您应该像这样传递解码器的全部内容:

Input_directory=open("D:\Encoded_Nokia.ber","rb")

# reads everything
content = Input_directory.read()
output=decoder.start(content)

关于python - 如何在 Python 中使用 ASN1 库解码 .BER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57309386/

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