Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

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

01.01.2007
{ **** 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) + '>'; 


 
{ **** 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;