Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units (https://www.delphipraxis.net/206384-dateien-verschluessen-mit-wolgang-ehrhardts-crypt-units.html)

DieDolly 16. Dez 2020 09:29

Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
Wolgang Ehrhardt hat sehr schöne aber für mich auch unverständliche Hash- und Crypt-Units.
Die Hash-Units benutze ich schon. Ich würde gerne eine Datei mit einem Passwort verschlüsseln.

Kann mir dazu einer ein Beispiel geben?

TurboMagic 16. Dez 2020 10:11

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
Hallo,

ein Beispiel dafür habe ich dir dafür leider nicht.

Aber du könntest dir evtl. mal DEC anschauen, welches anders als
die Lösung des leider verstorbenen Wolfgang Erhards noch aktiv entwickelt
wird und bei dem auch einfache Beispiele dabei sind. Beinhaltet sowohl Hash-Algorithmen
als auch Verschlüsselungsalgorithmen und ist Cross Plattform kompatibel.

Zu finden hier:
https://github.com/MHumm/DelphiEncry...pendium/issues

Es kam erst am Sonntag ein neues Release davon raus.

Grüße
TurboMagic

DieDolly 16. Dez 2020 10:25

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
Ist es mit DEC möglich mit nur einer einzigen Zeile eine Datei zu ver- und zu entschlüsseln?
Delphi-Quellcode:
DEC_Verschlüssle_Datei(BeispielAlgorithmus, Datei, Passwort)
?

Alles andere ist mir leider zuviel Aufwand und erzeugt nur wieder Chaos im Code.

Falls es das nicht gibt: das wäre ein guter Zusatz für DEC und meiner Meinung nach unverzichtbar.

EdAdvokat 16. Dez 2020 12:06

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
schau doch mal nach bei J. Rathlev
https://www.rathlev-home.de/

dort findest Du den Link zu aeslib.zip und damit solltest Du durchaus weiter kommen.
Eine kleine Hürde ergibt sich aus der fehlenden Datei gnugettext.pas. Die findest Du jedoch auch unter:


https://www.delphipraxis.net/162828-...ttext-pas.html
und dort unter dem Beitragt #8.
Dies ist ein wirklich übersichtliches Programm mit dem Standardprogramm AES für eine sichere Chiffrierung.
Ich habe gute Erfahrungen mit dem AES-Algorithmus aus der lockbox und dem cn-pack gemacht und mir dazu
einen RTF-Editor mit div. Zusatztools zur AES-Chiffrierung, Hash-Tool und Packprogramm und div. Konvertierungen
geschrieben.Doch das ist sicher ein anderes Thema.

generic 16. Dez 2020 12:09

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
Eine andere Variante wäre die LibSodium die gibt es auf verschiedenen Plattformen und Programmiersprachen.

TurboMagic 16. Dez 2020 12:25

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
So, hier ein kurzes Beispiel zur Nutzung der DEC für den betreffenden Anwendungsfall.
Die relativen Pfade kommen aus dem Umstricken eines Demoprogramms auf den Anwendungsfall.
Braucht also mit Objekterzeugung und Freigabe 5 Zeilen. Dateien werden als Binärdateien
betrachtet, auch wenn das Beispiel eine Textdatei benutzt.

Delphi-Quellcode:
program Cipher_File;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  DECBaseClass in '..\..\Source\DECBaseClass.pas',
  DECCipherBase in '..\..\Source\DECCipherBase.pas',
  DECCipherModes in '..\..\Source\DECCipherModes.pas',
  DECCiphers in '..\..\Source\DECCiphers.pas',
  DECCRC in '..\..\Source\DECCRC.pas',
  DECFormat in '..\..\Source\DECFormat.pas',
  DECFormatBase in '..\..\Source\DECFormatBase.pas',
  DECTypes in '..\..\Source\DECTypes.pas',
  DECUtil in '..\..\Source\DECUtil.pas',
  DECData in '..\..\Source\DECData.pas',
  DECCipherFormats in '..\..\Source\DECCipherFormats.pas',
  DECUtilRawByteStringHelper in '..\..\Source\DECUtilRawByteStringHelper.pas',
  DECCipherInterface in '..\..\Source\DECCipherInterface.pas',
  DECDataCipher in '..\..\Source\DECDataCipher.pas';

var
  Cipher    : TCipher_AES;
begin
  Cipher := TCipher_AES.Create;

  try
    try
      // Schlüssel, Initialisierungsvektor, Füllwert um auf Blockgröße aufzufüllen
      Cipher.Init('Passwort', #1#2#3#4#5#6#7#64, 0);
      Cipher.Mode := cmCBCx;
      // Klartextdatei, verschlüsselte Datei
      Cipher.EncodeFile('test.txt', 'test.encr');

      ReadLn;
    except
      on E: Exception do
        Writeln(E.ClassName, ': ', E.Message);
    end;
  finally
    Cipher.Free;
  end;
end.

DieDolly 16. Dez 2020 13:41

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
Ich kenne mich mit Verschlüsselung nicht aus. Der Vektor, ist das ein Wert den niemand sehen darf oder ist das egal?
Wie kommt dieser Vektor zustande? Kann ich da irgendwas hinschreiben?

Wenn das mit DEC nur 5 Zeilen sind, ist das OK.

himitsu 16. Dez 2020 13:51

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
Der IV ist sowas ähnliches wie das SALZ, damit bei gleichem Passwort mit gleichen Daten nicht überall auf der Welt das selbe Ergebnis entsteht,
also ja, der ist "geheim" und für dich/in deinem Programm solltest du was Eigenes benutzten. (eventuell sogar für jede einzelne Verschlüsselung was Anderes)

https://de.wikipedia.org/wiki/Salt_(Kryptologie)
https://de.wikipedia.org/wiki/Initialisierungsvektor


Aber beim Ver- und Entschlüsseln natürlich jeweils das Gleiche. :angle2:


Stell dir den IV einfach so vor, wie bei einem Hash den Startwert, mit dem die Berechnung beginnt.

DieDolly 16. Dez 2020 13:53

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
Wenn ich aus meinem Programm eine Datei verschlüsseln muss und das Programm an jemanden geben möchte, reicht es wenn der da das Passwort eingibt?
Oder muss der dann auch diesesIV eingeben?

himitsu 16. Dez 2020 13:57

AW: Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
 
Du kannst den IV mitgeben,

aber er kann der Einfachheit halber auch "fest" im Programm eingebaut sein.



Die Summe aus IV und Key und Technik (Verschlüsselungsart/Modus, z.B. AES+CBC) ergibt die Verschlüsselung.
> wird Einwas geändert, ergibt es ein anderes Ergebnis


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr.
Seite 1 von 5  1 23     Letzte »    

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