Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Gute Algorithmen? (https://www.delphipraxis.net/27946-gute-algorithmen.html)

Delphi Freak 17. Aug 2004 17:56


Gute Algorithmen?
 
Hallo,

ich habe gerade angefangen ein Verschlüsselungsprogramm zum Verschlüsseln von Dateien und Texten zu schreiben. Ich habe im Internet u.a. folgende Routinen gefunden. Meine Frage ist nun, ob mir jemand von euch sagen kann, wie diese Algorithmen heißen bzw. wie sicher diese sind.

Routine zur Datei-Verschlüsselung:
Delphi-Quellcode:
procedure FileEncrypt(FileName : string; Key : string);
var
  I : Integer;
  Zeichen : Byte;
  mem : TFileStream;
  keylen : Integer;
  keypos : Integer;
begin
  mem := TFileStream.Create(Filename,fmOpenReadWrite or fmShareExclusive);
  keylen := length(key)-1;
  keypos := 0;
    form2.ProgressBar1.Max:= mem.Size ;
  for I := 1 to mem.Size do
  begin
    if i mod 1000 = 0 then
    form2.ProgressBar1.position := i;


    mem.Position := I;
    mem.Read(Zeichen,1);

    if keypos = keylen then
      begin
        Zeichen := Zeichen-ord(key[keypos]);
        keypos := 0;
      end
    else
      begin
        Zeichen := Zeichen-ord(key[keypos]);
        inc(keypos);
      end;

    Mem.Position := I;
    mem.Write(Zeichen,1);
  end;
  mem.free;
end;
Routine zur Text-Verschlüsselung:
Delphi-Quellcode:
function InternalEncrypt(const S: AnsiString; Key: Word): AnsiString;
var
  I: Word;
  Seed: Word;
begin
  Result := S;
  Seed := Key;
  form2.ProgressBar1.Max:= Length(Result) ;
  for I := 1 to Length(Result) do
  begin

    form2.ProgressBar1.position := i;

    Result[I] := Char(Byte(Result[I]) xor (Seed shr 8));
    Seed := (Byte(Result[I]) + Seed) * Word(C1) + Word(C2)
  end
end;

bttb930 17. Aug 2004 18:34

Re: Gute Algorithmen?
 
Naja, der erste algorithmus ist einer der simpelsten die es gibt. ist nur sicher wenn der key lang genug ist.

der zweite algorithmus ist glaube ich wesentlich besser, das hängt aber auch von C1 und C2 ab.

Lies doch mal das Buch von Simon Singh zu dem Thema... sehr unterhaltsam und nebenbei erfährt man viel über Stärken und Schwächen solcher Algorithmen.

NicoDE 17. Aug 2004 18:47

Re: Gute Algorithmen?
 
Letzteres sieht aus wie ein Pseudo-Zufallsgenerator, der Dank bekanntem Startwert immer die gleiche 'Zufallsfolge' liefert.
Wenn C1, C2 und Key bekannt sind, gibt es nur noch 255 Möglickeiten ;)

nailor 17. Aug 2004 19:09

Re: Gute Algorithmen?
 
und fall 1 sieht mir nach cäsar/vigniere aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 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