Einzelnen Beitrag anzeigen

Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Hilfe bei XOR-"Verschlüsselung"

  Alt 18. Jul 2005, 04:59
Moin,

ich habe eine Textdatei(Datenbank1.txt) die folgendermassen aussieht:

Zitat:
Ein anderes Wort für Geige ?Violine
Wer malte die "Mona Lisa" ?Leonardo da Vinci
Welche Mauer muss sich den ganzen Tag Klagen "anhören" ?Klagemauer
Nun habe ich im OnClick von Button1 auf meiner Form1 folgende Prozedur:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  xfile: textfile;
  buffer: string;
  i: integer;
  Ch:Char;
begin
  buffer := '';
  AssignFile(xfile, 'C:\Datenbank1.txt');
  Reset(xfile);
  while not eof(xfile) do
  begin
    Read(xfile, ch);
    buffer := buffer + ch;
  end;
  CloseFile(xfile);
  for i := 1 to length(buffer) do
    buffer[i] := Chr(Ord(buffer[i]) xor ((i mod 128)));
  AssignFile(xfile, 'C:\Datenbank2.txt');
  ReWrite(xfile);
  for i := 1 to Length(buffer) do
    write(xfile, buffer[i]);
  CloseFile(xfile);
end;
Das Ergebnis in "Datenbank2" ist nach Klick des Buttons folgendes:

Zitat:
Dkm$dhcm{ox,Za}d1tïf5Qrq~;#HvOMKMA(,pM[
FMAZJU[V{XVXwUN_`~C!*(&:-%k(,n9?1:Y_24:2>|?*BG L PW,[7eo"!eknñzld),2D|puvytcrj
So nun möchte ich den Text wieder im Klartext haben, meine Button2-prozedur sieht so aus:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  xfile: textfile;
  buffer: string;
  i: integer;
  ch: char;
begin
  buffer := '';
  AssignFile(xfile, 'C:\qdatenbank2.txt');
  Reset(xfile);
  while not eof(xfile) do
  begin
    Read(xfile, ch);
    buffer := buffer + ch;
  end;
  CloseFile(xfile);
  for i := 1 to length(buffer) do
    buffer[i] := Chr(Ord(buffer[i]) xor ((i mod 128)));
  AssignFile(xfile, 'C:\Datenbank3.txt');
  ReWrite(xfile);
  for i := 1 to Length(buffer) do
    write(xfile, buffer[i]);
  CloseFile(xfile);
end;
Nach einem Klick auf Button2, sieht Datenbank3.txt so aus:

Zitat:
Ein anderes Wort für Geige ?Violine
Wer malte die "Mona
Bitte nicht den Rest beachten, z.b warum ich für das ganze 2 prozeduren hab oder sonst was, da ich das nur testweise alles so habe, hier gehts mir lediglich darum, warum da im ergebniss Text fehlt?
Mario
  Mit Zitat antworten Zitat