Расшифровка строки, ранее зашифрованной фукцией UBPFD.Encrypt

Материал из DRKB



{ **** UBPFD *********** by kladovka.net.ru ****
>> Расшифровка строки

Предназначена для расшифровки строки, ранее зашифрованной фукцией UBPFD.Encrypt

Зависимости: UBPFD.Encrypt
Автор:       Anatoly Podgoretsky, anatoly@podgoretsky.com, Johvi
Copyright:   (c) Anatoly Podgoretsky, 1996
Дата:        26 апреля 2002 г.
********************************************** }

const
  StartKey = 471; // Start default key
  MultKey = 62142; // Mult default key
  AddKey = 11719; // Add default key
// обязательно смените ключи до использования

{$R-}
{$Q-}
function Decrypt(const InString: string; StartKey, MultKey, AddKey: Integer): string;
var
  I: Byte;
// Если поменять тип переменной I на Integer, то будет возможно шифрование
// текста длиной более 255 символом - VID.
begin
  Result := '';
  for I := 1 to Length(InString) do
  begin
    Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
    StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;
  end;
end;
{$R+}
{$Q+}


Пример использования:

S := 'Ваш старый пароль: <' + Decrypt(S, StartKey, MultKey, AddKey) + '>';


Author: Anatoly Podgoretsky
ID: 03991



{ **** UBPFD *********** by kladovka.net.ru ****
>> Расшифровка строки InString, зашифрованной с помощью функции EncryptEX

Функция является модификацией UBPFD.Decrypt. Отличие в том, что UBPFD.DecryptEX расшифровывает шифр-текст, зашифрованный с помощью функции UBPFD.EncryptEX

Зависимости: UBPFD.Decrypt, UBPFD.AsсiiToStr
Автор:       VID, vidsnap@mail.ru, ICQ:132234868, Махачкала
Copyright:   VID
Дата:        30 апреля 2002 г.
********************************************** }

function DecryptEX(const InString: string; StartKey, MultKey, AddKey: Integer): string;
begin
  Result := Decrypt(AsciiToStr(InString), StartKey, MultKey, AddKey);
end;


Пример использования:

var S: string;
begin
  S := UBPFD.EncryptEX('String', 1, 1, 1);
  // S является источником данных для функции UBPFD.DecryptEX
  ShowMessage('Расшифровка: ' + UBPFD.DecryptEX(S, 1, 1, 1));
end;


Author: VID
ID: 03992