Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung (https://www.delphipraxis.net/204061-zip-7z-rar-komponente-mit-metadatenverschluesselung.html)

swestner 20. Apr 2020 16:17

ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung
 
Hallo,

ich suche jetzt schon eine ganze Weile in Google aber bin immer noch nicht fündig geworden:

Ich suche eine Komponente zum ZIP / 7Z / RAR, mit der ich AES256-verschlüsselte Archive erstellen kann bei denen auch die METADATEN (also Dateinamen) verschlüsselt sind.

Wer weiß da was?

Danke

Stefan Westner

DieDolly 20. Apr 2020 16:18

AW: ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung
 
Muss es RAR sein?
Wenn Zip und 7z ausreicht, nutz doch den 7z-Wrapper von den Jedi-JCLs.

himitsu 20. Apr 2020 16:22

AW: ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung
 
Bei 7-Zip kann man einstellen was alles verschlüsselt werden soll (nur Inhalte oder zusätzlich auch die Namen)

ZIP selbst, kann sowas nicht (glaub ich), außer du verschlüsselst am Ende nochmal "selbst" die ganze Datei.
(so ähnlich wie bei TAR, was man anschließend nochmal komprimiert und/oder verschlüsselt)

Und 7-Zip kann man per Konsole steuern, oder direkt deren DLL verwenden. (bei C++ könnte man sogar den Quellcode einkompilieren)

swestner 20. Apr 2020 16:24

AW: ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung
 
Nein, es muß nicht unbedingt RAR sein.

ZIP ab Spezifikation 6.2 (Metadatenveschlüsselung möglich) und 7Z wären auch in Ordnung.

Metadatenverschlüsselung ist UNBEDINGT erforderlich.

In der genannten JEDI JCL-Komponente habe ich das aber nirgends gefunden. Oder habe ich was übersehen?

Also:
Wer weiß eine Komponente, welche ZIP ab 6.2 oder 7Z mit METADATENVERSCHLÜSSELUNG beim Packen und Entpacken unterstützt?

DieDolly 20. Apr 2020 16:28

AW: ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung
 
ZIP 6.2.0 ist von 2004. Es muss wohl einen grund haben, weshalb auch die aktuellste 7z.dll das nicht unterstützt.

Zitat:

Wer weiß eine Komponente, welche ZIP ab 6.2 oder 7Z mit METADATENVERSCHLÜSSELUNG beim Packen und Entpacken unterstützt?
Steht doch oben. Jedi JCL. Aber nur 7z mit Metadatenverschlüsselung. ZIP ohne. ZIP und Metadatenverschlüsselung habe ich noch nie gesehen.

Zitat:

Oder habe ich was übersehen?
JclCompression.pas.

swestner 20. Apr 2020 16:43

AW: ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung
 
7z mit Metadatenverschlüsselung ist für mich absolut OK.

Ich habe das wohl in der Jedi JCL übersehen.

Ich suche nochmals.

DOer hat jemand gerade den entsprechenden Aufruf zur Hand wie unter JCLCompression ein 7z erstellt wird mit Verschlüsselung der Metadaten?

Danke

Stefan Westner

swestner 20. Apr 2020 16:53

AW: ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung
 
OK, habe ich tatsächlich übersehen:

procedure TForm1.Button2Click(Sender: TObject);
var
Archive : TJcl7zCompressArchive;
m: TMemoryStream;
begin
m:=TMemoryStream.Create;
Archive := TJcl7zCompressArchive.Create(m,0,False);
try
Archive.AddFile('Stream0','t:\Versuchsprojekte\7Zi p\_sevenzip.pas' );
---> Archive.SetEncryptHeader(True);
Archive.Password:='password';
Archive.Compress;
m.SaveToFile('t:\1.7z');
finally
Archive.Free;
m.Free;
end;
end;


Problem gelöst.

DieDolly 20. Apr 2020 16:57

AW: ZIP / 7Z / RAR-Komponente mit Metadatenverschlüsselung
 
Den MemoryStream brauchst du nicht. Ein Dateiname (string) reicht.

So ist es meiner Meinung nach eleganter
Delphi-Quellcode:
var
 ArchiveFormat : TJCLUpdateArchiveClass;
 Archive: TJclUpdateArchive;
begin
 ArchiveFormat := GetArchiveFormats.FindUpdateFormat('C:\1.7z');

if ArchiveFormat <> nil then
 begin
  Archive := aCompressFormat.Create('C:\1.7z');


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