Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe bei XOR-"Verschlüsselung" (https://www.delphipraxis.net/49908-hilfe-bei-xor-verschluesselung.html)

Pseudemys Nelsoni 18. Jul 2005 04:59


Hilfe bei XOR-"Verschlüsselung"
 
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?

marabu 18. Jul 2005 05:31

Re: Hilfe bei XOR-"Verschlüsselung"
 
Auch Moin,

Eof beim FCB Nachfolger TextFile kann das physische oder das logische Ende der Datei sein. Das logische Ende wird durch das ASCII control char EOF = #26 markiert. Deine Verschlüsselung verhindert ein Auftreten dieses Steuerzeichens nicht, also musst du die verschlüsselte Textdatei als binary file (filestream) öffnen. Dann sollte alles funktionieren.

Grüße vom marabu

Pseudemys Nelsoni 18. Jul 2005 05:50

Re: Hilfe bei XOR-"Verschlüsselung"
 
Moin,

danke für deine Antwort ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz