Hallo,
hab mich jetzt ein wenig (also vll eine Viertelstunde

) mit Bitoperatoren beschäftigt, und bin bei Delpi-Source.de auf diesen Quellcode für eine simple XOR-Verschlüsselung gestoßen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| function XORString(Text, Schluessel: String): String; var i, q: Integer; begin q := 1; if Trim(Schluessel) = '' then Schluessel := 'adsfdaiuebranwruhwiernakb'; for i := 1 to Length(Text) do begin Text[i] := Chr(Ord(Text[i]) xor Ord(Schluessel[q])); Inc(q); if q > Length(Schluessel) then q := 1; end; Result := Text; end; |
Der ist ja auch recht einleuchtend, jedoch kann ich meinen Namen (Johannes) nicht wieder entschlüsseln
Ich denke doch jedenfalls mal, dass man diese XOR-Codierung durch zweifache Anwendung der Routine wieder rückgängig machen kann (was ja auch meistens klappt). Wenn ich jedoch "Johannes" kodiere und wieder dekodieren will, bekomme ich nur "Joh".
Ich vermute, dass es daran liegt, dass bei dieser einfachen Verschlüsselung bei der XOR-Verknüpfung ein Wert rauskommt, der als Zeichen nicht existiert

Oder woran liegt es sonst?
Wäre auch nett, falls mir jemand eine kleine Änderung nennen könnte, womit man dann alles kodieren kann und auch wieder dekodieren. Bzw. eine Internetadresse, wo es eine aufschlussreiche XOR-Verschlüsselung mit Code zu sehen gibt, damit ich mir (nach Verständnis des Prinzips) vll. mal eine eigene bauen kann
PS: Hab hier im Delphi-Forum nur die von MartinPb gefunden, mich aber noch nicht genauer damit auseinandergesetzt
