Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   CryptMaster - AES-Verschlüsselungsprogramm (https://www.delphipraxis.net/10068-cryptmaster-aes-verschluesselungsprogramm.html)

daniel-volk 10. Okt 2003 19:02


CryptMaster - AES-Verschlüsselungsprogramm
 
Hi,

an dieser Stelle stelle ich euch mein Verschlüsselungsprogramm CryptMaster vor.

Mit CryptMaster lassen sich Dateien und Texte verschlüsseln und Dateien vernichten.
Das Programm verfügt über eine recht große Dokumentation und ist durch den Assistentenstil einfach zu bedienen.

Es wird folgende Verschlüsselung genutzt:
AES (Rijndael) im Modus CBC (Cipher Block Changing) mit SHA-1 als HashClass. Daraus ergibt sich eine maximale Schlüssellänge von 160 Bit, was sogar mehr ist, als Steganos Security Suite hat.
Genaue Infos hierzu gibt's aber in der Hilfe.

CryptMaster läuft natürlich auf jedem Windows-System. (Geschrieben unter XP, getestet unter XP und ME.)

MfG,
Daniel.

CryptMaster - Download

Und noch ein Link zu meiner Website:
DanielVolk.de

PS:
Ich wäre dankbar, wenn ihr mir eure Meinung zu dem Prog sagen würdet. :)

nailor 10. Okt 2003 21:09

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
lycos blockt den deep link!

daniel-volk 10. Okt 2003 21:34

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Kann eigentlich nicht sein.
Ich hab das selbst grad nochmal getestet - und es geht problemlos. Einfach draufklicken und warten, bis das "Speichern"-Fenster kommt. Schon hast du den CryptMaster. ;-)

Nur nicht durch die Werbung beirren lassen. Die ist zwar verdammt nervig, aber ich nutze Lycos dennoch als Downloadserver, weil ich da 100MB kostenlosen Webspace kriege. :-)

MfG,
Daniel.

Luckie 10. Okt 2003 22:01

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Geht das ganze auch ohne Setup für uns zum Testen?

daniel-volk 10. Okt 2003 22:32

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Wieso das denn? Das Ding ist doch fertig, hat also auch einen Setup. ;-)
Was spricht denn dagegen? Dem System wird es wohl auch nicht sonderlich schaden, wenn man da mal'n bisschen was installiert. Erstellt ja keine sonderlichen Registry-Einträge etc.

Der Setup enthält zumindest die Dokumentation. Und die gehört ja nun mal zum Prog. :-)

MfG,
Daniel.

Luckie 10. Okt 2003 22:42

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Schaden nicht, aber ich hasse es, wen ich nur mal zum Testen was installieren muß.
Zitat:

Erstellt ja keine sonderlichen Registry-Einträge etc.
Und gerade die stören mich, wenn sie bei der Deinstallatiuon nicht wieder entfernt werden. Ich habe ein schön stabiles System, weil ich eben so pingelig bin und mein System sauber halte und das soll auch so bleiben.

Und was spricht gegen ein Zip Archiv? Dürfte übrigens auch kleiner sein, als dein Setup da.

Jelly 10. Okt 2003 23:28

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Muß da unserem gutem Luckie zustimmen. Mein XP läuft jetzt schon 1 1/2 Jahre schön stabil, weil ich eben auch drauf achte, was ich installier.

@Daniel: Wie sind alle Delphiprogrammierer und kommen auch mit einer schlichten zip-Datei klar. Also was spricht dagegen.

Gruß,
Tom

daniel-volk 11. Okt 2003 09:21

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Gut, gut.
Ihr habt mich überzeugt.

Speziell für euch jetzt hier das ganze Prog im ZIP-Archiv.

So wollte ich es eigentlich schon wegen der Lizenz nicht verbreiten (und weil irgendwelche PC-Newbies damit auch nich klar kämen). Aber hier in der DP sollte es mit Lizenzen ja keine Probleme geben. ;-)

MfG,
Daniel.

Daniel 11. Okt 2003 09:33

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Daniel,

sieht gut aus - schön wäre es, wenn Du die Bedienung noch etwas 'straffen' könntest. Mir ist dies mit diesen Assistenten immer etwas 'langwierig'; wenngleich gerade diese Art der Benutzerführung dem ungeübten Anwender eher entgegenkommen dürfte.

Und noch eine Kleinigkeit: Zum Schluß bietet mir Dein programm direkt an, noch eine weitere datei zu verschlüsseln - ich solle nur auf 'Restart' klicken. Aber wo ist dieser Button?

Jelly 11. Okt 2003 11:08

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Zitat:

Zitat von Daniel
Zum Schluß bietet mir Dein programm direkt an, noch eine weitere datei zu verschlüsseln - ich solle nur auf 'Restart' klicken. Aber wo ist dieser Button?

Fehlte bei mir auch schon mal. Bei weiteren Tests jedoch war er zu finden an Stelle des Zurück-Button.

Gruß,
Tom

daniel-volk 11. Okt 2003 11:45

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Komisch,

das Problem mit dem Restart-Button hab ich noch nie erlebt - und ich hab bestimmt schon 100 Dateien testweise verschlüsselt. :?

Wenn das bei euch nochmal vorkommt, dann klickt doch bitte einfach mal auf den zurück-Button und sagt mir, was dann passiert. ich hab das so programmiert, dass es ein button bleibt, bei dem sich nur die Caption ändert. In der ButtonClick-Routine wird dann die Caption abgefragt. Handelt der Button also wie ein Restart-Button, dann wird bei euch nur aus irgendeinem Grund das GUI nicht upgedated.

Aber hier noch etwas Anderes:
Nämlich eine Version 1.1

Die schätzt jetzt gleich die Passwortsicherheit ein. Eben speziell für den ungeübten User, für den auch die Sache mit dem Assistenten gemacht ist. :)

MfG,
Daniel.

daniel-volk 11. Okt 2003 13:52

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

hier noch einmal die Version 1.2 im WinXP-Design.

MfG,
Daniel.

Luckie 11. Okt 2003 14:20

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Vom Design her viel weiße Fläche um viel leeren Raum.
Das Menü des Buttons öffnet sich irgendwie etwas "seltsam". Noprmalerweise haben solehe Buttons ein Dreieck das nach untenweist und beim Klicvken erscheint das Menü darunter.

Zitat:

Zitat von CryptMaster
---------------------------
Programmdatei exportieren
---------------------------
Sie haben jetzt die Möglichkeit, dieses Programm in einen externen Ordner (z.B. USB-Stick) zu exportieren.

Hierbei werden jedoch die Lizenz- sowie die Hilfedatei nicht kopiert.

Eine Weitergabe des Programms auf diesem Wege ist untersagt.

Möchten Sie fortfahren?
---------------------------
Ja Nein
---------------------------

Wenn nur das Programm exportiert wird, was wohl soviel heißt wie "kopiert", wozu denn dann die Funktion? Das bekomme ich auch noch über den Explorer hin. Wenn die Hilfe Datein und die Ini-Datei irgendwo verstreut wären, dann würde das Sinn machen, aber so nicht.

Zitat:

Zitat von CryptMaster
---------------------------
Wirklich beenden?
---------------------------
Möchten Sie CryptMaster wirklich beenden?
---------------------------
Ja Nein
---------------------------

Nervig, wenn ich auf "Beenden" Klicke, was will ich dann wohl machen? Na? Na? Genau, es beenden. IUnd mal eben so versehentlich klick man nicht auf den Button, desweiteren würde ja keine nicht wiederherstellbaren Daten verloren gehen, wie bei einm Word Dokument, wo man 3 Stunden drangearbeitet hat.

Zitat:

Zitat von CryptMaster Hilfe
Sollte irgendjemand an dieser Art der Verschlüsselung oder der Umsetzung in Delphi zweifeln, so besteht die Möglichkeit, Auszüge aus dem Quellcode zu bekommen. Diese werden jedoch prinzipiell nur an Personen herausgegeben, die selbst Erfahrung auf diesem Gebiet haben und ihrerseits eine starke Verschlüsselungssoftware vorzuweisen haben.
Selbstverständlich ist in diesem Fall jede Weiterverwendung des ausgehändigten Quellcodes untersagt!

Ich weiß nicht. Ich finde, damit machst du dich lächerlich. Entweder ganz OpenSource oder gar nicht. Und der fett markierte Satz ist der schlimmste.

Alles in allem scheint es zu funktionieren. Nur bei größeren Dateien reagiert es nicht mehr und eine Fortschrittsanzeige wäre nicht schlecht.

daniel-volk 11. Okt 2003 14:49

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
@ Lickie:
Das Menü soll sich so öffnen. Es ist einfach ein normales Kontextmenü. Ein anderes Menü würde das Design der gleichmäßigen Buttons durcheinander bringen.

Programm exportieren:
Du kannst das, aber kannst du dir vorstellen, dass ich auch Leute kenne, die zwar 'nen USB-Stick haben, aber zu blöd sind um den Speicherort meines Progs zu finden? Und auf diese Weise geht es doch wohl auch noch schneller. Du musst ja mal bedenken, dass der OTTO-Normalverbraucher nicht mit der ZIP-Datei arbeitet - und somit alle Dateien vorliegen hat - sondern den Setup verwendet, der alle Dateien in C:\Programme\CryptMaster stopft.

Die Frage hat den Sinn, damit ein User - wenn er das Prog minimieren will und aus Versehen auf schließen klickt oder statt auf weiter auf beenden - das Prog nicht beendet wird. Und im Normalfall startest du das Prog ja, weil du etwas bestimmtes machen willst. Und nach dem Durchführen einer Aktion ist die Frage ja auch deaktiviert. Bei sinnvoller Verwendung wirst du mit der Frage also überhaupt nicht konfrontiert.

Zur Hilfe:
OK, das klingt schon etwas doof. Aber im Web gibt es verdammt viele Programme, in die eine Backdoor oder so eingebaut ist bzw. die nicht so sicher sind, wie sie scheinen. Und ich möchte halt meinen Usern ermöglichen, die Sicherheit selbst unter die Lupe zu nehmen. Also eine gewisse Transparenz.
Und da die Sicherheit natürlich nur von Usern beurteilt werden kann, die sich selbst zumindest etwas auskennen, gibt es diesen Satz. Allen anderen Usern soll dann wohl die genaue Beschreibung der Verschlüsselung reichen.
Ansonsten muss man auch davon ausgehen, dass User nur den Quellcode haben wollen, damit sie ihn anschließend selbst verwenden können. Wer aber ein Cipherprog hat, der hat sowas nicht nötig. ;-)

Und noch etwas: Denk(t) bei der Beurteilung immer daran, dass die eigentliche Zielgruppe nicht die Mitglieder der DP sind, sondern der ganz normale PC-Nutzer.

MfG,
Daniel.

Ergänzung:
Das Hängenbleiben liegt daran, dass ich versucht habe, mit so wenigen Festplattenzugriffen wie möglich auszukommen.
Dafür wird erst die Originaldatei in einen Memory-Stream geladen (hier ist dann das Problem mit großen Files), der Header wird angehängt etc und dann wird das Ding verschlüsselt, wobei die Ausgabe direkt der Destination-FileStream ist.
Würde ich statt eines Memory-Streams 'nen Filestream wählen, dann hätte ich wieder das Problem, dass ich unverschlüsseltes Material unnötig oft speichern würde und zusätzlich noch zu viele HDD-Zugriffe hätte, was wiederum für Flash-Speicher schädlich wäre.
Jetzt arbeite ich prinzipiell so, dass ich eigentlich nur einen Kopiervorgang durchführe, bei dem ich zwischendurch verschlüssel - quasi OnTheFly.
Und ich kann den Stream schlecht zerlegen, da ich nun einem mit CBC nur die höchste Sicherheit erreiche, wenn ich durchgehend arbeite. Sonst muss ich zwischendurch immer wieder Zufallswerte einbauen, weil sonst wieder die Gefahr eines Known-Plaintext-Angriffes besteht.
Und erst ins DEC einzugreifen, um dann da Änderungen vorzunehmen, die es ermöglichen, dass ich Teilstücke mit CBC so verschlüsseln kann wie ich es will: Nein danke, das ist dann doch etwas zu viel des Guten. :-)

Luckie 11. Okt 2003 15:25

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Lager das Ver- und Entschlüsseln in einen Thread aus, dann hängt auch nichts mehr.

daniel-volk 11. Okt 2003 16:20

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
??? Wieso das denn? Du meinst eine INI-Datei oder eine DLL?
Gut, wie mache ist das denn? Ich schiebe die Funktionen in eine INI und implementiere die oder wie geht das?

Aber ich verstehe den Sinn davon noch nicht. Wieso soll das besser sein?

MfG,
Daniel.

PS: Wenn ich das auslagere, dann ist es wahrscheinlich auch nicht mehr möglich, dass ich während der Zeit der Verschlüsselung noch die Eieruhr anzeige, oder?

Luckie 11. Okt 2003 16:46

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Hä? Ausführbarer Copde in einer Ini? Was soll denn das? :gruebel: Und eine DLL brauchst du für einen extra Thread auch nicht. Datei -> neu -> weitere -> Thread-Objekt.

Und der Sinn ist der, dass dann dein Fenster nicht einfriert und verschoben und mimiert werden kann. Kuck dir meinen Crypter an. Und wenn du TStreamProgressAdapter nutzt kannst du auch einen Fortschritanzeigen.

Und wo wir schon dabei sind, beantworte mir doch mal die Frage in unserem Thread mit Hagen. Wie lautet die Cipher Klasse von AES?

daniel-volk 11. Okt 2003 17:57

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Zitat:

Und der Sinn ist der, dass dann dein Fenster nicht einfriert und verschoben und mimiert werden kann. Kuck dir meinen Crypter an. Und wenn du TStreamProgressAdapter nutzt kannst du auch einen Fortschritanzeigen.
Achso. Das hört sich schon nicht schlecht an. Aber wenn mein Fenster nicht einfriert, dann wird sicherlich auch sofort die Meldung "Aktion durchgeführt" erscheinen, richtig? Und das ist dann wiederum nicht so toll.
Mit dem TStreamProgressAdapter sehe ich ein kleines Problem, weil ich mir drei Streams erstelle, und zwar einen SourceStream, einen TempStream und einen DestStream. Ich könnte somit nur den Fortschritt des DestStreams lesen. Und der wird ja beim Verschlüsseln erst geschrieben!
Vielleicht geht es, wenn ich vor dem Verschlüsseln schon einmal die Größe von DestStream festlege. Ansonsten würde ich ja immer 100% bekommen.

Zitat:

Und wo wir schon dabei sind, beantworte mir doch mal die Frage in unserem Thread mit Hagen. Wie lautet die Cipher Klasse von AES?
Ganz einfach:
Unit: Cipher1;
Class: TCipher_Rijndael;


MfG,
Daniel.

mirage228 11. Okt 2003 18:00

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Zitat:

Zitat von daniel-volk
Zitat:

Und der Sinn ist der, dass dann dein Fenster nicht einfriert und verschoben und mimiert werden kann. Kuck dir meinen Crypter an. Und wenn du TStreamProgressAdapter nutzt kannst du auch einen Fortschritanzeigen.
Achso. Das hört sich schon nicht schlecht an. Aber wenn mein Fenster nicht einfriert, dann wird sicherlich auch sofort die Meldung "Aktion durchgeführt" erscheinen, richtig?

Hi!

Nicht ganz. Du könntest dem Haupt-Thread (der nix zu tun hat, aber halt reagiert) per TThread.OnThreadDone sagen, dass er beim Beenden der Threads (bzw. der Ver/Entschlüsselungsvorgangs) die Meldung anzeigen soll!

mfG
mirage228

Luckie 11. Okt 2003 18:15

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Zitat:

Zitat von daniel-volk
Zitat:

Und der Sinn ist der, dass dann dein Fenster nicht einfriert und verschoben und mimiert werden kann. Kuck dir meinen Crypter an. Und wenn du TStreamProgressAdapter nutzt kannst du auch einen Fortschritanzeigen.
Achso. Das hört sich schon nicht schlecht an. Aber wenn mein Fenster nicht einfriert, dann wird sicherlich auch sofort die Meldung "Aktion durchgeführt" erscheinen, richtig? Und das ist dann wiederum nicht so toll.

Warte doch bis der Thread fertig ist. Mit WaitForSingleObject zum Bleistift.
Zitat:

Mit dem TStreamProgressAdapter sehe ich ein kleines Problem, weil ich mir drei Streams erstelle, und zwar einen SourceStream, einen TempStream und einen DestStream. Ich könnte somit nur den Fortschritt des DestStreams lesen. Und der wird ja beim Verschlüsseln erst geschrieben!
Vielleicht geht es, wenn ich vor dem Verschlüsseln schon einmal die Größe von DestStream festlege. Ansonsten würde ich ja immer 100% bekommen.
Mache ich doch auch. Allerdings wozu der TempStream? Den SourceStream koppelst du mit dem StreamProgressAdapter. Danach richtet sich ja immer der Fortschritt.

daniel-volk 11. Okt 2003 18:33

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Zitat:

Mache ich doch auch. Allerdings wozu der TempStream? Den SourceStream koppelst du mit dem StreamProgressAdapter. Danach richtet sich ja immer der Fortschritt.
Eben nicht. Auf Hagen's Rat hin verschlüssel ich den Hash-Wert mit und nutze ihn somit gleichzeitig noch als Zufallswert. Ich brauche also zwingend einen TempStream, da ich ansonsten den Hash-Wert nicht vor dem Verschlüsseln einbauen kann. Und somit wird der SrcStream blitzschnell gelesen - im Gegensatz zum DestStream.

Aber ich glaube dennoch, dass mit ein Thread nicht viel bringt. Wenn ich WaitForSingleObject nehme, dann wird mein Prog sicherlich wieder hängen.
Zudem würde es für mich eventuell verdammt kompliziert werden, da sehr viel Quellcode umgestrickt werden müsste.

Wenn ich mit dem StreamProgressAdapter einfach so arbeite, wieso wird mir da kein Fortschritt angezeigt, auch wenn ich in die WndProc Prozedur Form1.Update; eingebe?
Wird die WndProc-Prozedur überhaupt nicht ausgeführt, solange eine andere Prozedur aktiv ist?
Meine Wunschlösung wäre einfach, dass ich dem Ding nur sage, dass es auf einen eingeblendeten Abbrechen-Button die Encode-Prozedur killt und ansonsten den Fortschritt anzeigt. Ich will nämlich eigentlich nicht so viel ändern.
Ist das irgendwie möglich?

MfG,
Daniel.

Luckie 11. Okt 2003 18:42

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Also ich habe den StreamProgressAdapter so umgestrickt, dass er immer eine Message schickt. Diese mußt du in deiner überschriebenen WndProc abfangen und auswerten. Kucks dir bei mir an.

Hm, das mit dem Tempstream. Da würde mir jetzt auch nichts besseres einfallen. Daran überlege ich ja auch noch, wie ich das hinbekomme den Hash mit zu verschlüsseln. Im Moment packe ich den Header mit dem Hash noch vor die unverschlüsselte Datei. Aber wie Hagen sagt, wäre es besser selbigen mit zu verschlüsseln. Eventuell trenne ich den Hash vom Header. dann kann ich den Header der verschlüsselten Datei auslesen wo drin Steht welcher Cipher und welcher Hash benutzt wurde. Dann kann ich alles im Programm ändern und ältere verschlüsselte Dateien können immer noch entschlüsselt werden. Ist etwas tricke dann mit dem Streams muß man konzentriert arbeiten und aufpassen, was man macht.

daniel-volk 11. Okt 2003 20:57

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
So, ich hab mal 'ne ProgressBar eingebaut. Und das, was ich herausgefunden habe, das ist unglaublich!
Die Berechnung des Hash-Wertes, die geht recht schnell. Wenn dann aber der Source-Stream in den Tempt-Stream geschrieben wird, dann dauert das ewig.
Das eigentliche Verschlüsseln am Ende dauert bei 17 MB nur ca. 2 Sec!!!
(Hab mir zwischen den Aktionen immer wieder Messages anzeigen lassen.)

Wie kommt das?

Daniel.

Luckie 11. Okt 2003 21:09

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Das Laden/Speichern der Datei dauert eben etwas, er muß sie ja von der Platte lesen/schreiben.

daniel-volk 11. Okt 2003 22:59

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich hab jetzt mal die Version 1.3 fertig.
Dabei wird jetzt in einer ProgressBar genau gezeigt, an welcher Stelle er gerade ist.

Dennoch sollte man keine Dateien verschlüsseln, die größer als 20 MB sind. Das dauert einfach zu lange. Ob es geht weiß ich nicht, weil ich es nicht getestet habe.
Bis 20 MB ist es aber auf jeden Fall OK.

Aber wie macht die Profi-Software das? Die verschlüsseln doch Dateien in 0,nix. Na ja, wahrscheinlich ist das dann alles optimiert und in Assembler geschrieben, sodass die Befehle wesentlich schneller abgearbeitet werden. :?

Wird für uns jedenfalls wohl nicht zu schaffen sein.

MfG,
Daniel.

PS: Wenn ich 'nen MemoryStream verwende, wird der dann in die Auslagerungsdatei geschrieben? Das wäre nämlich verdammt dumm. Dann müsste ich den Stream eventuell wipen, damit das nicht auf der HDD zurückbleibt.

Luckie 11. Okt 2003 23:03

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Das Archiv scheint beschädigt zu sein.

daniel-volk 12. Okt 2003 00:01

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Bei mir geht's wenn ich's downloade.

Vielleicht war's nur'n Übertragungsfehler.

MfG,
Daniel.

Luckie 12. Okt 2003 00:19

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Ich weiß ehrlich gesagt nicht, was du da machst. Dein Programm 48 MB 1 Minute 35 Sekunden. Mein Programm für die gleiche Datei 8 Sekunden. Und meine Konsolen Version sogar nur 5 Sekunden - Minus Reaktionszeit zum Stoppen.
Delphi-Quellcode:
// open source stream
  SrcStream := TStreamProgressAdapter.Create(TFileStream.Create(Filename,
    fmOpenRead or fmShareDenyNone), hWnd);
  if Assigned(SrcStream) then
  begin
    try
      // create destination stream
      DestStream := TFileStream.Create(IncludeTrailingPathDelimiter(Folder)+
        ExtractFilename(Filename) + EXTENSION, fmCreate);
      if Assigned(DestStream) then
      begin
        try
          // write the head into the stream
          DestStream.Write(FileHeader, sizeof(TFileHeader));
          //  prepare vor encoding
          with DefCipherClass.Create(PW, nil) do
          begin
            Mode := cmCBC;
            InitKey(PW, nil);
            // alocate memory for the buffer
            GetMem(Buffer, 1024);
            try
              // as long as we have not reached the end of the source stream
              while (SrcStream.Position < SrcStream.Size) and (Terminated =
                False) do
              begin
                // how much to read
                if SrcStream.Size - SrcStream.Position > BlockSize then
                  Len := BlockSize
                else
                  Len := SrcStream.Size - SrcStream.Position;
                // read into the buffer
                SrcStream.ReadBuffer(Buffer^, Len);
                // encode the buffer
                EncodeBuffer(Buffer^, Buffer^, len);
                // write the buffer
                DestStream.WriteBuffer(Buffer^, Len);
              end;
Und daran, dass ich den Header nicht mit verschlüssele kann es nicht liegen.

AMD Athlon 1800XP (1500 MHz), 512 MB Ram.

Und lass das Menü von dem Button doch unter dem Button aufpoppen, das sieht doch besser aus. Und warum Refreshst du auch immer das Label mit der Aktion immer mit. Das flackert doch. Und wenn du in der WndProc noch Application.Processmessages aufrufst, dann kann man es auch verschieben und minimiren und so weiter arbeiten. Diese "Stay on Top" als default ist sowieso nervig, dein Programm blockiert dann jedes mal den gesamten Desktop.

mirage228 12. Okt 2003 08:22

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Hi,

dein Programm stürzt während des Verschlüsselungsvorgang ab (44 MB Datei, Schritt 2), wenn ich während des Vorgangs in ein anderes Fenster wechsele (z.B. Windows Media Player).
Wenn ich nicht wegschalte, braucht dein Programm ca. 2min um die Datei zu verschlüsseln. Am längsten dauerte Schritt 2.
Zudem sind Progressbar und Label drüber ziemlich am flackern.

Ansonsten gefällt mir dein Programm. Bei dem Assistenten kann man sich gar nicht vertun. Die angaben zur Passwortsicherheit gefallen mir ebenfalls ;-)

mfG
mirage228

daniel-volk 12. Okt 2003 09:30

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Zitat:

Hi,

dein Programm stürzt während des Verschlüsselungsvorgang ab (44 MB Datei, Schritt 2), wenn ich während des Vorgangs in ein anderes Fenster wechsele (z.B. Windows Media Player).
Wenn ich nicht wegschalte, braucht dein Programm ca. 2min um die Datei zu verschlüsseln. Am längsten dauerte Schritt 2.
Zudem sind Progressbar und Label drüber ziemlich am flackern.
Ja, ich weiß. Ich weiß aber auch nicht, wie ich das ändern soll. Die einzige Möglichkeit wären wahrscheinlich Threads, aber dafür müsste ich jede Menge Quellcode umstricken - und wenn ich Pech hätte, dann wäre es trotzdem nicht besser. :(
Das mit dem Flackern liegt daran, dass das Fenster immer wieder upgedated werden muss, wenn ein Progress stattfindet. Und das geschieht z.T. schneller, als es überhaupt gezeichnet wird. Daher das Flackern. Ist bei sowas aber durchaus normal.

Zitat:

Ansonsten gefällt mir dein Programm. Bei dem Assistenten kann man sich gar nicht vertun. Die angaben zur Passwortsicherheit gefallen mir ebenfalls
Ah, endlich mal ein Befürworter des Assistenten. :bounce2: Die Formulierungen zur Passwortsicherheit stammen übrigens von Steganos. Auf solche Formulierungen haben die ja nun kein Copyright. Wenn es ein solches Copyright gäbe, dann könnten wir wahrscheinlich kein Wort mehr sprechen, ohne gleich gegen irgendein Copyright zu verstoßen.
Ne, aber ich hab die Formulierungen übernommen, weil ich mir dann zumindest sicher sein konnte, dass das auch Hand und Fuß hat.
Abgesehen davon schätzt CryptMaster die Passwortsicherheit etwas pessimistischer ein als Steganos. Um den Status 100% zu erreichen, musst du also bei CryptMaster etwas mehr tippen. ;-)

MfG,
Daniel.

daniel-volk 12. Okt 2003 14:05

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

hab jetzt mal mit Application.PrecessMessages gearbeitet.
Jetzt stürzt das wenigstens nicht mehr ab.
Aber wie kriege ich diesen Abbrechen-Button hin?

Nur meine Verschlüsselungsfunktion zu stoppen, das geht eh nicht. Aber dann will ich wenigstens die Anwendung schließen.
Mit Application.Terminate geht es nicht. Das wird erst ausgeführt, wenn alles fertig ist.
Application.Free schließt zwar die Anwendung, aber nicht den Prozess. Ist also auch schlecht.

Was kann ich also machen? Es muss do möglich sein, dass ich den Prozess meiner Anwendung kille, oder?

MfG,
Daniel.

Christian Seehase 12. Okt 2003 14:10

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Moin Daniel,

setz' in der OnClick des Abbrechen Buttons ein Flag, und frag das in der Schleife die Du abbrechen willst ab.
Flag gesetzt: Schleife beenden.

daniel-volk 12. Okt 2003 14:56

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Soweit hab ich auch schon gedacht.
Leider hab ich auf die Schleife aber keinen Zugriff, weil die im DEC versteckt ist!
Ich gebe dem DEC also nur einen Befehl und das wird dann abgearbeitet. Den Forschritt erfahre ich nur über den StreamProgressAdapter.

Mir bleibt also nichts Anderes übrig, als entweder die Prozedur zu killen oder das gesamte Programm.

MfG,
Daniel.

mirage228 12. Okt 2003 15:53

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
daher solltest du es auch in einen Thread auslagern. Den kannst du nämlich einfach per TerminateThread(Handle); beenden.

mfG
mirage228

daniel-volk 12. Okt 2003 16:10

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Dann verzichte ich lieber auf das Beenden.

Hmm...Ich glaube, ich hab irgendwo noch einen Code, mit dem ich direkt einen Prozess killen kann.
Dann kann ich doch einfach das Handle meines Programms an diese Funktion übergeben und schon in der Prozess gekillt.

Stellt sich nur die Frage, ob das dann auch unter WinME geht. Na, ja. Irgendjemand von euch wird ja WinME haben. Der soll das dann doch bitte mal nachher testen. ;-)

MfG,
Daniel.

daniel-volk 12. Okt 2003 16:44

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Mal 'ne Frage:

Wie kriege ich die ProcessID meines Programms?

MfG,
Daniel.

Luckie 12. Okt 2003 17:32

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
GetCurrentProcesID.

Aber jetzt fängst du an rumzuflicken und unsauber zu arbeiten. Nimm EncodeBuffer wie ich in einer Schleife, diese kannst du dann über ein Flag verlassen. Eventuell ist das auch schneller als EncodeStream.

daniel-volk 12. Okt 2003 18:08

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Gut, aber dann verschlüssel ich jeden Buffer einzeln und das ist nicht gut. Dann bringt mir CBC nämlich praktisch nichts mehr (soweit ich weiß).

MfG,
Daniel.

PS: Mir ist lieber das Prog ist etwas geflickt als wenn die Verschlüsselung geflickt ist!

Luckie 12. Okt 2003 18:13

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Hagen hat gesagt, dass EncodeStream intern EncodeBuffer aufruft. Mußt mal in unserem Thread kucken, da steht es irgendwo.

daniel-volk 12. Okt 2003 18:36

Re: CryptMaster - AES-Verschlüsselungsprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Oki, wenn der das intern nutzt, dann könnte ich das auch nehmen.
Aber dann könnte ich auch den StreamProgressAdapter wieder rausschmeißen - zumindest für einige Funktionen.
Das heißt: Nee, ich könnte ihn nicht nehmen. Die meiste Zeit dauert es nämlich, wenn ich die Funktion CopyFrom() aufrufe.

Abgesehen davon bin ich mit meiner jetzigen Lösung schon ganz zufrieden. Immerhin funktioniert es ohne Probleme.

So, hier ist erst einmal die aktuelle Version meines Programmes!

MfG,
Daniel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr.
Seite 1 von 2  1 2      

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