Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
7. Jan 2021
Da kann man auch ein deprecated an Klassen/Methoden anhängen, dann bekommt jemand beim Compilieren eine Warnung.
type
TSHA1 = class(...)
...
end deprecated 'ist unsicher, benutze besser SHA256';
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
17. Dez 2020
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.
type
TDECCryptUtils = record
private
//
public
class function AESFileEncrypt(const FileName, Password: string; const Progress: IDECProgress = nil): string; static;
class...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
17. Dez 2020
Du hast eine Class-Procedure und da es dort keine "Instanz" gibt, hast du da auf Process garkeinen Zugriff.
Und nochmals, hier gibt man eine Interface-"Instanz" rein und keinen "Methoden"-Zeiger. (bei meinem Beispiel mit TForm1 also Form1 bzw. Self)
Du brauchst also erstmal ein Objekt und das muß erzeugt worden sein (Create).
Es wird die Instanz reingegeben und was aufgerufen wird (Process),...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
17. Dez 2020
Beispiel:
type
TForm1 = class(TForm, IDECProgress)
...
private
procedure Process(const Min, Max, Pos: Int64); stdcall;
end;
Und dann Self in als Interface für den Callback reingeben.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
17. Dez 2020
Schau doch mal in TCipher_AES?
Ob es im Constructor oder eine Methode einen Setter gibt, oder vielleicht gibt es auch ein Property, wo man eine Ereignismethode oder ein Interface zuweisen kann.
Es gibt ein IDECProgress, aber scheinbar nur beim Ver-/Entschlüsseln von Streams
und im Prinzip auch von Dateien (TFileStream).
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
16. Dez 2020
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
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
16. Dez 2020
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)...