AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien verschlüsseln - aber wie?

Ein Thema von daniel-volk · begonnen am 27. Sep 2003 · letzter Beitrag vom 14. Mär 2004
 
daniel-volk

Registriert seit: 16. Jul 2003
170 Beiträge
 
Delphi 6 Enterprise
 
#11

Re: Dateien verschlüsseln - aber wie?

  Alt 5. Okt 2003, 12:56
So,
ich hab hier mal die erste Beta meines Verschlüsselungsprogs CryptMaster.
Bis jetzt kann man nur Texte ver- und entschlüsseln, dafür aber - hoffentlich - sehr sicher!
Ich arbeite mit folgenden Mitteln:
DEC von Hagen (öffentliche Version)
Cipher: Rijndael
Hash: SHA1
Mode: CTS

Bevor der Klartext verschlüsselt wird, wird erst noch ein Zufallsstring der Länge "BufSize" vorne angehängt.
Anschließend wird beides verschlüsselt.
Nachdem alles verschlüsselt ist, wird noch der Original-Hashwert des Klartextes vorne angehängt und fertig.

Die Entschlüsselung geht genau umgekehrt.

Testet also bitte alle mal den CryptMaster und sagt mir, wie ihr das GUI etc findet!

@Hagen:
So, nun mal an den Experten:
Mein vorläufig verwendeter Code sieht so aus. Meiner Meinung nach sollte das zu einer maximalen Sicherheit führen, aber ich bin eben nur Amateur in Sachen Verschlüsselung.

Delphi-Quellcode:
const
  EXTENSION = '.cryptmaster';
  APPNAME = 'CryptMaster';
  APPVER = 'Beta 1';
  DefCipherClass : TCipherClass = TCipher_Rijndael;
  DefHashClass : THashClass = THash_SHA1;
  DefStringFormat = fmtMIME64;
  DefCipherMode = cmCTS;

implementation

{$R *.dfm}

// Function zum Generieren der Zufallswerte
function TFrmCipher.RandomString(Len: Integer): String;
begin
  SetLength(Result, Len);
  Rnd.Buffer(Result[1], Len);
end;

// function zum Verschlüsseln von Text
function TFrmCipher.EncodeString(Klartext, Passwort : string) : string;
var
  Hashstring : string;
begin
  with DefHashClass.Create(nil)
  do begin
      try
       HashString := CalcString(Klartext,nil,DefStringFormat);
      finally
       Free;
      end;
     end;
  with DefCipherClass.Create('',nil)
  do begin
      try
       Mode := DefCipherMode;
       HashClass := DefHashClass;
       InitKey(Passwort,nil);
       Result := CodeString(RandomString(BufSize)+Klartext,paEncode,DefStringFormat);
       Result := HashString+Result;
      finally
       Free;
      end;
     end;
end;

// String dekodieren | Result[1] (0,1) gibt an, ob es einen Fehler gab
function TFrmCipher.DecodeString(Ciphertext,Passwort : string):string;
var
  Hashlength : word;
  OldHash, NewHash : string;
begin
  with DefHashClass.Create(nil)
  do begin
       try
         Hashlength := length(CalcString(Ciphertext,nil,DefStringFormat));
       finally
         Free;
       end;
     end;
  OldHash := Copy(Ciphertext,1,Hashlength);
  Delete(Ciphertext,1,Hashlength);
  with DefCipherClass.Create('',nil)
  do begin
      try
       Mode := DefCipherMode;
       HashClass := DefHashClass;
       InitKey(Passwort,nil);
       Result := CodeString(Ciphertext,paDecode,DefStringFormat);
       Delete(Result,1,BufSize);
      finally
       Free;
      end;
     end;
  with DefHashClass.Create(nil)
  do begin
       try
         NewHash := CalcString(Result,nil,DefStringFormat);
       finally
         Free;
       end;
     end;
  If OldHash = NewHash
  then Result := '1'+Result
  else Result := '0'+Result;
end;
Wie bewertest du diesen Code?

Thx,
Daniel.

PS: @Hagen:
Würde es dir etwas ausmachen, wenn ich dir meinen fertigen Sourcecode (sofern er denn mal irgendwann fertig ist) demnächst zur Kontrolle zuschicke? Bevor ich das Ding mit der Definition "sehr sicher" - möchte nämlich mit die sicherste Freeware-Verschlüsselungssoftware schreiben - auf die Leute loslasse, hätte ich das schon gerne nochmal überprüft.
Angehängte Dateien
Dateityp: zip cryptmaster_beta1.zip (383,7 KB, 32x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 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