Использование LockBox3 с Delphi XE4 без установки
Я портирую программу с Delphi 2009 на XE4 и у меня проблема с шифрованием LockBox. Модуль шифрования / дешифрования использует только один компонент:
interface
function Encrypt(aStr: String): String;
function Decrypt(aStr: String): String;
function NeedEncrypt(): Boolean;
implementation
uses
windows,
strUtils,
LbClass;
var
LbRijndael: TLbRijndael;
localNeedEncrypt: Boolean;
function NeedEncrypt(): Boolean;
begin
Result := localNeedEncrypt;
localNeedEncrypt := False;
end;
function Encrypt(aStr: AnsiString): AnsiString;
begin
Result := aStr;
if RightStr(aStr, 2) = '==' then
Exit;
Result := LbRijndael.EncryptString(aStr);
end;
function Decrypt(aStr: AnsiString): AnsiString;
begin
Result := aStr;
if RightStr(aStr, 2) = '==' then
Result := LbRijndael.DecryptString(aStr)
else
localNeedEncrypt := True;
end;
initialization
LbRijndael := TLbRijndael.Create(nil);
LbRijndael.GenerateKey('KEYABC');
LbRijndael.CipherMode := cmECB;
LbRijndael.KeySize := ks128;
end.
Как я понял нет LockBox2 для Delphi XE4. Могу ли я использовать LockBox3 для этой цели? Если да, могу ли я использовать только необходимые модули без установки в Delphi (это было сделано с помощью LockBox2)?
1 ответ
Решение
Хотя API-интерфейсы LB2 и LB3 сильно различаются, вы сможете без проблем переносить этот код. Поскольку вы динамически создаете компоненты во время выполнения, вам не нужно устанавливать пакеты в вашу среду IDE, при условии, что в пути к вашей библиотеке задан источник LB3.