unit sicherheit;
interface uses Dialogs,classes;
type TVerschluesselung =
class
constructor _create(Schluessel,Daten: WideString);
function Entschluesseln: WideString;
function Verschluesseln: WideString;
procedure LadeTextausDatei(pPfad:
String);
procedure SpeichereTextinDatei(pPfad:
String);
destructor _destroy;
public
private
Data,key: WideString;
index: integer;
_Ergebnis: WideString;
function nextkeybyte: integer;
end;
implementation
{ TVerschluesselung }
constructor TVerschluesselung._create(Schluessel, Daten: WideString);
begin
if length(Schluessel) < 2
then exit;
key:= Schluessel;
Data := Daten;
index := 0;
end;
function TVerschluesselung.Entschluesseln: WideString;
begin
result := Verschluesseln;
end;
function TVerschluesselung.nextkeybyte: integer;
begin
result := ord(key[(
index mod length(key))+1]);
inc(
index);
end;
function TVerschluesselung.Verschluesseln: WideString;
var Ergebnis:
String;
i: integer;
begin
Ergebnis := '
';
for i:= 1
to length(Data)
do
begin
Ergebnis := Ergebnis + chr(ord(Data[i])
XOR nextkeybyte);
end;
result := Ergebnis;
_Ergebnis := Ergebnis;
end;
destructor TVerschluesselung._destroy;
begin
//
end;
procedure TVerschluesselung.LadeTextausDatei(pPfad:
String);
var txtDatei: TStringlist;
begin
txtDatei := TStringList.Create;
txtDatei.LoadFromFile(pPfad);
Data := txtDatei.Text;
txtDatei.Destroy;
end;
procedure TVerschluesselung.SpeichereTextinDatei(pPfad:
String);
var txtDatei: TStringlist;
begin
txtDatei := TStringList.Create;
txtDatei.Add(_Ergebnis);
txtDatei.SaveToFile(pPfad);
txtDatei.Destroy;
end;
end.