簡體   English   中英

如何在Python中使用ASN1庫解碼.BER

[英]How to decode .BER using ASN1 Library in Python

我有一個無法解碼的.BER格式的編碼文件。

搜索之后,我發現我需要使用ASN1庫才能解碼此文件並使其可讀。

有人可以指導我如何使用python上的ASN1庫解碼.BER文件嗎?

我已經在線檢查過,發現有一些在線ASN1解碼器可以正確解碼我的文件。 但是,我將無法使用它們,因為我需要不使用在線工具自行對其進行解碼。 我不知道如何在下面的腳本中獲取此標記和值。

導入asn1導入重新導入os導入將來Input_directory = open(“ D:\\ Encoded_Nokia.ber”,“ rb”)

對於Input_directory中的行:解碼器= asn1.Decoder()輸出= decoder.start(行) tag,output=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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM