Autor Beitrag
Johannes Maier
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 173

Win XP
D7 Prof
BeitragVerfasst: Mi 28.07.04 20:43 
Hallo,

wie hier nachzulesen ist, hab ich ein kleines Problem mit der simpelsten aller COR-Verschlüsselungen gehabt :wink: Dabei ging es darum, dass mein verschlüsselter String immer abbrach wenn der Schlüssel an einer best. Stelle gleich dem String war.
Ich hab das ganze Problem umgangen, indem ich, wenn o.g. Fall auftrat, mit einem anderen Zeichen verschlüsselte, wodurch natürlich eine Extra-Decode-Funktion geschrieben werden musste.
Soweit hat alles geklappt, als Zeichen hab ich '#' gewählt, da das in normalen Texten nie vorkommt :wink:
Jetzt merke ich allerdings, dass das Programm bei dem Wort 'wie' ein Problem hat. Nicht bei 'awie' und auch nicht bei 'we' sondern nur bei 'wie' ...
Hier der Code der Funktionen:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
function EncodeXOR(Str, Key: String): String;
var
  i, q, StrLen, KeyLen: Integer;
  EncStr: String;
begin
  StrLen := Length(Str);
  KeyLen := Length(Key);
  SetLength(EncStr, StrLen);
  q := 1;
  for i := 1 to StrLen do begin
    if Str[i] <> Key[q] then
      EncStr[i] := Chr(Ord(Str[i]) xor Ord(Key[q]))
    else
      EncStr[i] := Chr(Ord(Str[i]) xor Ord('#'));
    Inc(q);
    if q > KeyLen then
      q := 1;
  end;
  Result := EncStr;
end;

function DecodeXOR(EncStr, Key: String): String;
var
  i, q, StrLen, KeyLen: Integer;
  DecStr: String;
begin
  StrLen := Length(EncStr);
  KeyLen := Length(Key);
  SetLength(DecStr, StrLen);
  q := 1;
  for i := 1 to StrLen do begin
    if Ord(EncStr[i]) xor Ord(Key[q]) = Ord('#') then
      DecStr[i] := Chr(Ord(EncStr[i]) xor Ord('#'))
    else
      DecStr[i] := Chr(Ord(EncStr[i]) xor Ord(Key[q]));
    Inc(q);
    if q > KeyLen then
      q := 1;
  end;
  Result := DecStr;
end;

Ich hoffe ihr könnt mir helfen, den Fehler :shock: zu finden ...
Nebenbei: Wer eine recht einfache XOR-Verschlüsselung kennt oder einen guten Link dazu, der kann ihn mir auch gerne sagen :wink:

_________________
MfG
Johannes ehem. jbmaier
Johannes Maier Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 173

Win XP
D7 Prof
BeitragVerfasst: Do 29.07.04 09:08 
Problem hat sich gelöst :wink:
Hab das Ganze jetzt mal mit Streams programmiert, dabei tritt keiner der Fehler (auch der aus dem letzten Thread nicht) auf. :D

_________________
MfG
Johannes ehem. jbmaier