Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#2

Re: XOR Verschlüsselung ANFÄNGER

  Alt 2. Jun 2006, 11:03
Einfach jedes Zeichen in eine Zahl (Byte, Integer...) umwandeln, diese per XOR verknüpfen und dann zurück in ein Zeichen (Char, AnsiChar...)
Delphi-Quellcode:
For i := 1 to Length(Text) do Begin
  B1 := Byte(Text[i]);
  B2 := Byte(Key[i]);
  Bx := B1 xor B2;
  Text[i] := Char(Bx);
End;
Zusammen isses natürlich kürzer:
Delphi-Quellcode:
For i := 1 to Length(Text) do
  Text[i] := Char(Byte(Text[i]) or Byte(Key[i]));

// oder

For i := 1 to Length(Text) do
  Text[i] := Chr(Ord(Text[i]) or Ord(Key[i]));
Das obere war aber nur, wenn Key gleich lang, oder länger als Text ist.
bei 'nem kürzerem Key muß du natürlich die Position des zu lesenden Zeichens im Key anpassen
Delphi-Quellcode:
For i := 1 to Length(Text) do Begin
  i2 := (i - 1) mod Length(Text2) + 1;
  i2 := (i - 1) mod Length(Text2) + 1;
  B1 := Byte(Text[i]);
  B2 := Byte(Key[i2]);
  Bx := B1 xor B2;
  Text[i] := Char(Bx);
End;
Delphi-Quellcode:
For i := 1 to Length(Text1) do
  Text1[i] := Char(Byte(Text1[i]) or Byte(Text2[(i - 1) mod Length(Text2) + 1]));
so geht es zwar auch, aber dann verschlüsselt der Text[1] mit Key[2], Text[2] mit Key[3] und so weiter ... also alles um ein Zeichen verschoben (aber vielleicht könnte das ja auch so gewollt sein ... funktionieren würde es jedenfalls auch)
Zitat:
i2 := i mod Length(Text2) + 1;

PS: Beim XOR ist die Entschlüsselung genauso wie der Verschlüsselung, also für Rückgängig einfach nochmal "verschlüsseln" ^^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat