2011-07-21 43 views

回答

3

我不相信Python的結構模塊支持該格式,它主要只支持在C結構中常見的編碼。 BER & DER編碼通常只在ASN.1編碼流中遇到......在這種情況下,Python ASN.1模塊中的一個可能會有所幫助(我應該注意它們是而不是,用戶友好)。

如果不是,您可能必須自己實現解碼器。下面的代碼位將讀出一個int,並且其中的字符串拆包應該拿起返回...

def decode_ber_int(data, offset): 
    value = 0 
    while True: 
     tmp = ord(data[offset]) 
     value = (value<<7) | (tmp&0x7f) 
     offset += 1 
     if tmp & 0x80 == 0: 
      break 
    return value, offset 

可悲的是,這將可能需要打破你的電話解壓到解壓,decode_ber_int和把剩下的東西打開。

+0

感謝您的回答,尤其是代碼示例! –