2013-11-26 10 views
0

Delphi 2009에서 XE4로 프로그램을 이식하고 LockBox 암호화에 문제가 있습니다. 암호화/복호화 장치가 하나의 구성 요소만을 사용하고 있습니다.설치없이 Delphi XE4에서 LockBox3 사용

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로 완료되었습니다)?

+4

오픈 소스 대안과 관련하여 귀하의 질문을 삭제했습니다. 라이브러리 별 질문은 일반적으로 StackOverflow에 대한 좋은 질문이 아니지만 적어도 별도의 질문이어야합니다. –

답변

0

LB2 및 LB3 API는 매우 다르지만이 코드를 너무 어려움없이 포팅 할 수 있어야합니다. 런타임에 구성 요소를 동적으로 만들 때 라이브러리 경로가 LB3 소스를 포함하도록 설정되어 있으면 IDE에 패키지를 설치할 필요가 없습니다.