Klappt bisher genau so wie gewünscht.
Eine kleine Extra-
Unit erlaubt mir dann an anderer Stelle einen 1-Zeiler als Aufruf. Die Extra-
Unit ist aber ausbaufähig was doppelten Code angeht.
Dieses .encrypted.txt und .decrypted.txt ist nur eine kleine Hilfe für mich bis ich alles richtig habe.
Delphi-Quellcode:
unit Utils.DEC.Crypt;
interface
uses
System.SysUtils, System.Classes, DECCipherBase, DECCiphers, DECCipherFormats;
type
TDECCryptUtils =
record
private
//
public
class function AESFileEncrypt(
const FileName, Password:
string):
string;
static;
class function AESFileDecrypt(
const FileName, Password:
string):
string;
static;
end;
implementation
class function TDECCryptUtils.AESFileEncrypt(
const FileName, Password:
string):
string;
var
Cipher: TCipher_AES;
begin
Cipher := TCipher_AES.Create;
try
try
// Schlüssel, Initialisierungsvektor, Füllwert um auf Blockgröße aufzufüllen
Cipher.Init(Password, #1#2#3#4#5#6#7#64, 0);
Cipher.Mode := cmCBCx;
// Klartextdatei, verschlüsselte Datei
Cipher.EncodeFile(FileName, FileName + '
.encrypted.txt');
except
//
end;
finally
Cipher.Free;
end;
end;
class function TDECCryptUtils.AESFileDecrypt(
const FileName, Password:
string):
string;
var
Cipher: TCipher_AES;
begin
Cipher := TCipher_AES.Create;
try
try
// Schlüssel, Initialisierungsvektor, Füllwert um auf Blockgröße aufzufüllen
Cipher.Init(Password, #1#2#3#4#5#6#7#64, 0);
Cipher.Mode := cmCBCx;
// Klartextdatei, verschlüsselte Datei
Cipher.DecodeFile(FileName, FileName + '
.decrypted.txt');
except
//
end;
finally
Cipher.Free;
end;
end;
end.