2015-03-13 42 views

cevap

1

Kullanım binascii kullanıyorum diyerek hata var:

import binascii 

binary_string = binascii.unhexlify(hex_string) 
9

Dize nesnelerini çözemezsiniz; Onlar zaten çözülmüş vardır. Farklı bir yöntem kullanmanız gerekecek.

Bir codec olarak hex uygulamak için codecs.decode() function kullanabilirsiniz: Bu Binary transform codec'i uygular

>>> import codecs 
>>> codecs.decode('ab', 'hex') 
b'\xab' 

;

>>> import binascii 
>>> binascii.unhexlify('ab') 
b'\xab' 

ya:

>>> import base64 
>>> base64.b16decode('AB') 
b'\xab' 

Ayrıca bayt heks rakamlardan 'şifresini çözmek' için binascii.unhexlify() function kullanabilir

: bu giriş dizesi ile base64.b16decode() function kullanarak eşdeğer büyük harfe dönüştürülür şekilde, bir bytes nesnesini alırsınız.

+0

>>> s = '1bcd67879034' >>> codecs.decode (s, 'heks') b '\ X1B \ xcdg \ x87 \ X904' >>> ######### ########## bu beklenen bir sonuç değil: ama beklenen "b '\ x1b \ xcd \ x67 \ x87 \ x90 \ x34'" ## neyi özlüyorum? – rahookds

+0

@rahookds: bu doğru görünüyor. Bir bayt literal gösteriminin yalnızca * yazdırılamayan * baytlar için '\ xhh' çıkış dizileri kullandığını unutmayın. '' 34', '' 4 '' karakteri için altıgen ASCII kod noktasıdır. '67'' g'' dir. –

+0

yep! ne aradığımı nasıl görüyorum? ;-) – rahookds

İlgili konular