Thread XOR Checksum von HEX-Werten (11 answers)
Opened by rbach at 2009-02-16 14:19

rbach
 2009-02-16 14:19
#118894 #118894
User since
2009-02-16
2 Artikel
BenutzerIn
[default_avatar]
Hi Leute,

ich habe eine kleines Problem mit der Bildung einer XOR-Checksum. Es geht dabei um einen string, der dessen Zeichen in ihre HEX-Werte laut ASCII-Tabelle umgewandelt und anschließend für die Checksum mit XOR verknüpft werden.

Die Umwandlung klappt ohne Probleme. Aus meinen Teststring '51,8' wurde korrekt '35312c38'. Nun müssen alle Zeichen miteinander per XOR verknüpft werden.

Leider kommt es bei der Verknüpfung mit dem 'c' leider immer zu einen
falschen Ergebniss. Bei '6^c' müsste das Ergebniss 'A' sein und nicht '6'.
Die restlichen Ergebnisse stimmen aber alle.

Mein Code dazu:
Code: (dl )
1
2
3
4
5
6
7
8
  #in $ndata steht '35312c38'
$ndataxor = 0;
@array = split(//, $ndata);
foreach (@array)
{ print $ndataxor . " xor ". $_;
$ndataxor = $ndataxor^$_;
print " -> ". $ndataxor . "\n";
}


Meine Ausgabe (die Problemausgabe ist markiert):

0 xor 3 -> 3
3 xor 5 -> 6
6 xor 3 -> 5
5 xor 1 -> 4
4 xor 2 -> 6
6 xor c -> 6
6 xor 3 -> 5
5 xor 8 -> 13


Hat jemand einen Lösungsvorschlag? Bin für jede Hilfe sehr dankbar.

Grüße,
rbach

View full thread XOR Checksum von HEX-Werten