Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi komplette Dateien jeglicher Art verschlüsseln (https://www.delphipraxis.net/55919-komplette-dateien-jeglicher-art-verschluesseln.html)

Avax2k 28. Okt 2005 18:58


komplette Dateien jeglicher Art verschlüsseln
 
habe schon den ganzen tag im Forum gesucht aber gar nichts passenden gefunden nur eben immer wieder Bemerkungen wie : schau dir mal den Befehl TFileStream oder TResourceFile and usw.
Leider komme ich nicht dahinter, wie ich eine komplette Datei verschlüsseln kann..nur eben eine Textausgabe im Edit-Feld.. dazu sieht der Code wie folgt bei mir aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Edit1.Text := OpenDialog1.FileName;
ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
tfilestream.Create(Encode(Edit1.Text, 'a'), fmCreate);
end;
nach dem Drücken des knopfes wird auch eine Date erstellt jedoch wird nur der Dateiname eben der generierte schlüssel da es ja so nur den Inhalt vom Edit-Feld verschlüsselt..
Wie schaffe ich jetzt nur, dass er die komplett mit OpenDialog ausgewählte Datei an sich verschlüsselt ??

hoffe man kann mir weiterhelfen.

Luckie 28. Okt 2005 19:04

Re: komplette Dateien jeglicher Art verschlüsseln
 
Klassen in Delphi instanziert man so:
Delphi-Quellcode:
Obj := TObj.Create;
Das zum einen. Und zum anderen: Da hier niemnd hellsehen kann was und wie Encode macht und arbeitet, wird es ziemlich schwer bis unmöglich dir zu helfen.

Avax2k 28. Okt 2005 19:28

Re: komplette Dateien jeglicher Art verschlüsseln
 
Der Encode-Befehl stammt aus der RC4-Verschlüsselung und sieht so aus:

Delphi-Quellcode:
function Encode(const Value, Password: String): String;
begin
  Result := BinToHexStr(RC4Code(Value, Password));
end;

wenn ich TObj.Create nehme kennt Delphi den Befehl nicht..was muss ich als USES nehmen dafür ?

Luckie 28. Okt 2005 19:33

Re: komplette Dateien jeglicher Art verschlüsseln
 
Damit wirst du nur eine Zeichenkette verschlüssel können, sieht man ja schon an den paramtern: String.

SirThornberry 28. Okt 2005 19:46

Re: komplette Dateien jeglicher Art verschlüsseln
 
@Avax2k: Ich denke du solltest dich mal mit den Grundlagen beschäftigen.
Den Inhalt der Datei in einen String bekommst du so hinn:
Delphi-Quellcode:
var LStream: TFileStream;
    LDateiInhalt: String;
begin
  LStream := TFileStream.Create(DeinDateiname, fmOpenRead);
  SetLength(LDateiInhalt, LStream.Size);    
  LStream.Read(LDateiInhalt[1], LStream.Size); //nach diesem Befehl steht in "LDateiInhalt" der Dateiinhalt
  LStream.Free;
end;
einen String in eine Datei schreibst du dann so
Delphi-Quellcode:
var LStream: TFileStream;
begin
  LStream := TFileStream.Create(DeinDateiname, fmCreate);
  LStream.Write(VerschluesselterString[1], Length(VerschluesselterString));
  LStream.Free;
end;

quirks 28. Okt 2005 19:58

Re: komplette Dateien jeglicher Art verschlüsseln
 
mal kurz ne grundlagenfrage: was hatte das nochmal mit dem [1] auf sich? war das das mit der länge des strings?

Omann, 5 Jahre Delphi und dann sowas :roll:

St.Pauli 28. Okt 2005 20:08

Re: komplette Dateien jeglicher Art verschlüsseln
 
Das x-te Zeichen vom String - Typ TChar

Khabarakh 28. Okt 2005 20:11

Re: komplette Dateien jeglicher Art verschlüsseln
 
Nein, Länge ist 0. Allerdings besteht ein String in Delphi nicht nur aus Chars, sondern auch z.B. aus ReferenceCounting und eben diesem Längenfeld. Mit s[1] wird nur der String-Inhalt in den Stream gespeichert.

[edit]Nix roter Kasten :stupid: . Der Typ heißt aber Char, ohne Präfix :wink: . [/edit]

supermuckl 28. Okt 2005 21:13

Re: komplette Dateien jeglicher Art verschlüsseln
 
auf meiner seite findest du n kleines beispiel für ne fileverschlüsselung mit einer komponente (dcpcrypt)

Avax2k 28. Okt 2005 22:06

Re: komplette Dateien jeglicher Art verschlüsseln
 
Super Vielen Dank für die Antworten besonders an SirThornberry und supermuckl
ihr habt mir sehr geholfen :thumb:


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