![]() |
Problem bei XOR-Verschlüßelung
Ich habe gerade eben follgende XOR-Ver- und Entschlüßelung geschrieben:
Delphi-Quellcode:
Nun habe ich follgendes Problem: Wenn ein Buchstabe im Text mit dem selben Buchstaben verschlüßelt wird, dann wird nicht nur der Buchstabe nicht angezeigt, sondern auch keiner der folgenden Buchstaben.
function VerschlXor(text, key:string):string;
var i, i2: integer; begin i2:=0; for i:=0 to length(text) do begin text[i]:=chr((ord(text[i]) xor ord(key[i2]))); if i2=length(key) then i2:=0 else inc(i2); end; result:=text; end; Bsp: Schlüßel ist B, text ist "hallo Baum", dann verschlüßel (ins Memo) und entschlüßel ich den Text und der Text kommt raus: "hallo " (alles ab dem B ist weg). Hat jemand eine Ahnung woran das liegt? Intern scheint das ganze allerdings immer zu klappen, also wenn ich den verschlüßelten Text in eine Variable schreibe und auch zum Entschlüßeln aus dieser Variablen lese. Also muss chr((ord('B') xor ord('B'))) ein Zeichen ausgeben das alle dahinterkommenden verschlingt!? |
Re: Problem bei XOR-Verschlüßelung
Moin TheAn00bis,
wenn Du mit XOR zwei gleiche Werte verknüpfts, kommt 0 dabei heraus, und ein Memo zeigt nichts an, was ab der 0 kommt, da dies auch als Ende eines Strings gewertet wird. |
Re: Problem bei XOR-Verschlüßelung
Danke! Hat jemand eine Ahnung, wie man das Problem beheben kann, so dass trotzdem der richtige Text rauskommt? Natürlich könnte ich die Zahlen rauslassen, aber das wäre ja mist.
Einige Programme (z.B. CryptTool) machen das ja auch richtig... Edit: Ich sehe gerade das Programm zeigt auch nur die Verschlüßelten Hexadezimalwerte an, dann werde ich das wohl auch so machen. |
Re: Problem bei XOR-Verschlüßelung
Zitat:
MfG Binärbaum |
Re: Problem bei XOR-Verschlüßelung
Zitat:
Man könnte ja zuerst mit einer For-Schleife den String durchgehen und prüfen, ob "key" einem der Zeichen im String entspricht. Wenn ja, dann wird "key" um 1 erhöht und es wird weiterprobiert. Irgendwann wird sich schon ein Zeichen finden lassen, das nicht im String vorkommt :zwinker: |
Re: Problem bei XOR-Verschlüßelung
Zitat:
Außerdem wäre es IMHO besser, wenn key kein String sondern eher ein array of byte wäre, da ja letztlich nur die Ordinalwerte der Zeichen in key interessieren und nicht die Zeichen an sich. Dann könnte man auch solche Werte besser übergeben, die mit einem String nur schlecht zu realisieren sind. MfG Binärbaum |
Re: Problem bei XOR-Verschlüßelung
Zitat:
|
Re: Problem bei XOR-Verschlüßelung
Zitat:
Deshalb müsste man (wie schon bereits erwähnt) von Strings auf die reinen Zahlenwerte ausweichen und hätte dann auch keine Probleme mit derern Darstellung. MfG Binärbaum |
Re: Problem bei XOR-Verschlüßelung
Zitat:
|
Re: Problem bei XOR-Verschlüßelung
ich würde den string einfach in hexadezimalen werten der einzelnen buchstaben anzeigen lassen, aber in einer datei normal abspeichern (file of byte)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz