Ich habe einige rohen Zeichenfolge, die ichWie Python rohe Zeichenfolge in Hex konvertiert?
>>> word_str = "4954640000005200000005a7a90fb36ecd3fa2ca7ec48ca36004acef63f77157ab2f53e3f768ecd9e18547b8c22e21d01bfb6b3de325a27b8fb3acef63f77157ab2f53e3f768ecd9e185b7330fb7c95782fc3d67e7c3a66728dad8b59848c7670c94b29b54d2379e2e7a"
>>> hex_str = word_str.decode('hex')
>>> hex_str = "ITd\x00\x00\x00R\x00\x00\x00\x05\xa7\xa9\x0f\xb3n\xcd?\xa2\xca~\xc4\x8c\xa3`\x04\xac\xefc\xf7qW\xab/S\xe3\xf7h\xec\xd9\xe1\x85G\xb8\xc2.!\xd0\x1b\xfbk=\xe3%\xa2{\x8f\xb3\xac\xefc\xf7qW\xab/S\xe3\xf7h\xec\xd9\xe1\x85\xb73\x0f\xb7\xc9W\x82\xfc=g\xe7\xc3\xa6g(\xda\xd8\xb5\x98H\xc7g\x0c\x94\xb2\x9bT\xd27\x9e.z"
Mit Blick auf ascii Tabelle zu einem Zeitpunkt, nehme ich an, dass es dauert zwei Zahlen verhexen bin Umwandlung und wandelt sie durch entsprechenden Wert aus ASCII-Tabelle wie
49 -> I
54 -> T
64 -> d
00 -> \x00
00 -> \x00
Aber irgendwann diese Regel bricht
52 -> \x00R (00 and 52)
wird dann schreitet zu einer Zeit, zwei Zahlen zu nehmen und
00 -> \x00
00 -> \x00
00 -> \x00
05 -> \x05
a7 -> \xa7
a9 -> \xa9
0f -> \x0f
Hier dauert es 2 Paare (b3
und 63
) zur gleichen Zeit, anstatt von einem, in der es nicht mit b3
geeignetem Wert konvertiert (von erweiterten ASCII-Tabelle)
b36e -> \xb3n
Hier cd \xcd?
wird ...
cd -> \xcd?
Mein Ziel ist es, das gleiche (variable.decode ('hex')) in C++ zu implementieren, aber ich brauche, um zu verstehen, was g Welche Algorithmus wurde hier verwendet?
Ich habe etwas Code (Socket-Client, der mit Server-Gerät kommuniziert), aber es funktioniert ziemlich langsam, aus Leistungsgründen sollte es in C++ geschrieben werden. –
Ich wette, es sendet buchstäblich nur die Bytes. Ich kann mir nicht vorstellen, warum es den Zeichen im Python-Stil entkommen würde, um sie an einen Server zu senden. – kindall
Danke Mann für diese geniale Antwort. Juts jetzt habe ich es mit wireshark überprüft und das ist es genau. –