function oCrypt(mString : String) : String;
var
sString : String;
wert : Char;
wert1, i, Code : Integer;
begin
// Passwort von Klartext in das Format'FFxxx' umwandeln
i := 1;
sString := 'FF';
while i <= length(mString)
do begin
Wert := mString[i];
Wert1 := ord(Wert);
// val(Wert,Wert1,Code);
wert1 := wert1 + 20 + i; // Richtiges Zeichen
if length(Format('%d',[wert1])) = 1
then sString := sString + '00' + Format('%d',[wert1]);
if length(Format('%d',[wert1])) = 2
then sString := sString + '0' + Format('%d',[wert1]);
if length(Format('%d',[wert1])) = 3
then sString := sString + Format('%d',[wert1]);
Wert := mString[i];
Wert1 := ord(Wert);
Wert1 := Wert1 + 33 + i; // 2. Zeichen ohne Wirkung
if length(Format('%d',[wert1])) = 1
then sString := sString + '00' + Format('%d',[wert1]);
if length(Format('%d',[wert1])) = 2
then sString := sString + '0' + Format('%d',[wert1]);
if length(Format('%d',[wert1])) = 3
then sString := sString + Format('%d',[wert1]);
i := i + 1;
end;
result := sString;
end;
function oEnCrypt(mString : String) : String;
var
i,ii : Integer;
wert1, Code : Integer;
sString, Wert : String;
begin
// Passwort vom Format'FFxxx' in Klartext zurückgeben
mString := trim(mString);
if copy(mString,1,2) = 'FF'
then begin
// Neues Format
// Die ersten beiden FF nicht
mString := copy(mString,3,length(mString)-2);
i := 1;
ii := 1;
sString := '';
while i <= length(mString)
do begin
Wert := copy(mString,i,3);
val(Wert,Wert1,Code);
wert1 := wert1 - 20 - ii; // Entschlüsseln
ii := ii + 1;
if (Wert1 = 142)
then sString := sString + 'Ä'
else if Wert1 = 154
then sString := sString + 'Ü'
else if Wert1 = 153
then sString := sString + 'Ö'
else if Wert1 = 225
then sString := sString + 'ß'
else sString := sString + chr(wert1);
i := i + 6; // 3 Byte zeichen + 3 Byte Verwirrung
end;
end
else begin
// Altes Format wird nicht unterstützt
showmessage('Altes Lizenzformat von Ortho-Pro. Bitte Bruckner Solutions benachrichtigen ');
sString := '';
end;