AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien verschlüssen mit Wolgang Ehrhardts Crypt-Units

Ein Thema von DieDolly · begonnen am 16. Dez 2020 · letzter Beitrag vom 7. Jan 2021
Antwort Antwort
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

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

  Alt 17. Dez 2020, 12:55
Ich verstehe nur Bahnhof. Wo muss ich das denn hinpacken was da oben steht und wie wende ich das an?
Normale CallBacks schickt der Himmel. Interfaces die Hölle.
Ne also wenn das so kompliziert ist, nicht es nicht einmal einen normalen CallBack gibt, dann ist das DEC nix für mich.

Geändert von DieDolly (17. Dez 2020 um 13:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.201 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 17. Dez 2020, 13:50
Ist es wirklich so schwer zu verstehen?

Entweder du reichts es einfach durch und kannst hier von außen z.B. deine Form/Self reingeben, oder sonsteine Instanz, wo dieses Interface enthalten ist.
Delphi-Quellcode:
type
  TDECCryptUtils = record
  private
    //
  public
    class function AESFileEncrypt(const FileName, Password: string; const Progress: IDECProgress = nil): string; static;
    class function AESFileDecrypt(const FileName, Password: string; const Progress: IDECProgress = nil): string; static;
  end;

class function TDECCryptUtils.AESFileDecrypt(const FileName, Password: string; const Progress: IDECProgress): string;
...
   Cipher.DecodeFile(FileName, FileName + '.decrypted.txt', Process);



type
  TForm1 = class(TForm, IDECProgress)
  ...

procedure TForm1.Button1Click(Sender: TObject);
begin
  TDECCryptUtils.AESFileDecrypt('Dat.ei', 'Pass', Self);
end;
Und im Notfalls kann man es auch immer kapseln, sich also Wrapper bauen, um zwischen den verschiedenen Möglichkeiten der Callbacks zu wechseln.
Delphi-Quellcode:
type
type
  TDECProgress = procedure(const Min, Max, Pos: Int64) of object; // oder ohne "of object" oder mit "reference to" und mit oder ohne "stdcall"

  TDECProgressWrapper = class(TInterfacedObject, IDECProgress);
  private
    FOnProcess: TDECProgress;
    procedure Process(const Min, Max, Pos: Int64); stdcall;
  public
    constructor Create(const OnProcess: TDECProgress);
  end;

  TDECCryptUtils = record
  private
    //
  public
    class function AESFileEncrypt(const FileName, Password: string; const OnProgress: TDECProgress = nil): string; static;
    class function AESFileDecrypt(const FileName, Password: string; const OnProgress: TDECProgress = nil): string; static;
  end;

procedure TDECProgress.Process(const Min, Max, Pos: Int64); stdcall;
begin
  FOnProcess(Min, Max, Pos);
end;

constructor TDECProgress.Create(const OnProcess: TDECProgress);
begin
  inherited;
  Assert(Assigned(AProcess));
  FOnProcess := OnProcess;
end;

class function TDECCryptUtils.AESFileDecrypt(const FileName, Password: string; const OnProgress: TDECProgress): string;
...
   Cipher.DecodeFile(FileName, FileName + '.decrypted.txt', TDECProgressWrapper.Create(OnProgress)); // nur wenn Assigned(OnProgress) ... oder oben das Assert entfernen (und if-Assigned in den Callback)



type
  TForm1 = class(TForm) // ohne IDECProgress
  ...

procedure TForm1.Button1Click(Sender: TObject);
begin
  TDECCryptUtils.AESFileDecrypt('Dat.ei', 'Pass', YourProcessMethod);
end;
Zitat:
Delphi-Quellcode:
  except
   //
  end;
Für sowas gehört man mindestens gevierteilt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Dez 2020 um 13:58 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

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

  Alt 17. Dez 2020, 17:32
Geht das nicht einfacher?
Ich möchte keine extra Prozedur in einer Unit ablegen, die mit einer Form zusammenhängt. Kann ich die Progress-Prozedur nicht in dieselbe Unit legen wie auch den restlichen Code?
Genau deshalb ist mir ein CallBack lieber. Das hätte ich schon vor Stunden umsetzen können und dafür brauche ich keine extra Unit für.

Danke für deinen Code, weiter bringt der mich aber nicht. Da steht nicht die Prozedur bei wo ich Min Max und Pos abfrage.

Aber DEC hat sich für mich jetzt eh erledigt. Viel zu umständlich mit den ganzen Interfaces. Wenn ich das nicht einmal wie ein normales CallBack in derselben Unit deklarieren kann... dann interessiert mich das nicht. Sehr schade. Ich hatte gehofft, dass DEC endlich was Vernünftiges geworden wäre. Aber wenn auch jetzt hier der Interface-Wahn Einzug erhalten hat, dann nein danke.
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
415 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

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

  Alt 17. Dez 2020, 19:46
ich will ja nicht aufdringlich wirken, aber schau Dir doch mal das beiliegende Programm an.
Es ist sehr kompakt und einfach gestaltet.
Es enthält auch eine Prograssfunktion, vermutlich jedoch nicht das was Du suchst - oder?
Angehängte Dateien
Dateityp: zip lockbox.zip (154,8 KB, 18x aufgerufen)
Norbert
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

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

  Alt 17. Dez 2020, 20:36
Für welche Version von LockBox ist das weil ich habe LockBox 3 schon installiert, kann es aber nicht kompilieren. Denke das ist für LockBox (2) ?
Kann Version 3 auch eh nicht installieren. Es installiert bei mir nur eine BPL-Datei, und keine Komponenten.

Geändert von DieDolly (17. Dez 2020 um 20:43 Uhr)
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
415 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

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

  Alt 17. Dez 2020, 21:04
es ist wohl die Version 2.2 der Lockbox, mit der ich gearbeitet habe.
Norbert
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.855 Beiträge
 
Delphi 12 Athens
 
#7

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

  Alt 30. Dez 2020, 21:43
So, im aktuellen Entwicklungszweig der DEC ist jetzt eine Variante mit referenz auf eine anonyme methode enthalten
(zumindest für die Ciphers, für die Hashes muss es noch umgesetzt werden). Dadurch kann für die Fortschrittsanzeige
nun eine Methode, eine normale prozedur oder eine annonyme "in-place" methode benutzt werden.

Das VCL basierte Demo Programm wurde auch aktualisiert und per Radiobutton kann man dort auswählen, welche Variante
zum Zug kommen soll. Dadurch werden alle drei Varianten gezeigt.

Ich hoffe, das ist für die nähere Zukunft ausreichend.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:24 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