Skip to main content

Code

Funktion oCrypt - Passwort verschlüsseln

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;

Funktion oEnCrypt - Passwort verschlüsseln

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;