2017-12-17 3 views
-1

Ich habe eine Binärdatei mit Python analysiert .. Ich habe die ersten paar Werte korrekt aus der Datei. Aber wenn ich versuche, einen Hash-String zu lesen, die 32 Bytes ist erhalte ich einen falschen AusgangByte String zu String aus Binärdatei

Ausgang (32-Bit nicht hier gebucht wird)

b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 

Welche Art der Codierung ist der obige Text?

Wie kann es richtig zu Zeichenfolge analysieren?

+0

Ihre Zeichenfolge nur 10 Byte. – Daniel

+0

das 'b' kennzeichnet eine binäre Zeichenkette und das' \ x00' ist hexadezimale Zeichenkodierung. '00' kann durch den Hexadezimalwert des Bytes ersetzt werden, den Sie verwenden möchten. 'John' würde als 'b' \ x4A \ x6F \ x68 \ x6E'' codiert werden – Bert

+0

@Daniel Ich habe hier nicht die ganze Zeichenfolge gepostet ... –

Antwort

1

Dies ist nur die Darstellung Ihrer Zeichenfolge. Im Speicher haben Sie die gewünschten Bytes.

>>> data = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 
>>> len(data) # length of data 
10 
>>> data[0] # value of first byte 
0 

Wie ich aus den Kommentaren zu bekommen, die beabsichtigte Ausgabe ist der Wert des Bytes:

>>> ' '.join(map(str, data)) 
'0 0 0 0 0 0 0 0 0 0' 
+0

Wie bekomme ich den Wert der 32 Bytes? –

+0

Wie druckt es die 32 Bytes Daten? Es ist 32 Bytes von sha 256 String ... –

+0

Sie haben bereits die 32 Bytes. Wie willst du es drucken? – Daniel