使用LockBox3与Delphi XE4无需安装

时间:2013-11-26 15:39:08

标签: delphi encryption delphi-xe4 lockbox-3 lockbox-2

我正在将程序从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.

据我所知,Delphi XE4没有LockBox2。 我可以将LockBox3用于此目的吗?如果是的话,我可以在没有安装到Delphi的情况下使用刚才需要的单元(这是用LockBox2完成的)吗?

1 个答案:

答案 0 :(得分:0)

虽然LB2和LB3 API非常不同,但您应该能够毫不费力地移植此代码。在运行时动态创建组件时,如果将库路径设置为包含LB3源,则不需要将软件包安装到IDE中。