{
# 파일 인코딩 디코딩 Unit
# DCP Component need;
--------2010_10_27 GHG-------
}
unit Unit_Crypt;
interface
uses
Classes, Dialogs, SysUtils, DCPdes, DCPsha512;
function EnCodeFile(sFileName: string): boolean;
function DeCodeFile(sFileName: string): boolean;
function EnCodeText(sText : string) : string;
function DeCodeText(sText : string) : string;
implementation
function EnCodeText(sText : string) : string;
var
oDcp: TDCP_3Des;
begin
oDcp := TDcp_3Des.Create(nil);
try
try
oDcp.InitStr(AnsiString(blablablabla), TDCP_sha512);
result := String(oDcp.EncryptString(AnsiString(sText)));
except
result := '';
end;
finally
oDcp.Free;
end;
end;
function DeCodeText(sText : string) : string;
var
oDcp: TDCP_3Des;
begin
oDcp := TDcp_3Des.Create(nil);
try
try
oDcp.InitStr(AnsiString(blablablabla), TDCP_sha512);
result := String(oDcp.DecryptString(AnsiString(sText)));
except
result := '';
end;
finally
oDcp.Free;
end;
end;
function EnCodeFile(sFileName: string): boolean;
var
oDcp: TDCP_3des;
oMemStrm1, oMemStrm2: TMemoryStream;
begin
oDcp := TDCP_3des.Create(nil);
oMemStrm1 := TMemoryStream.Create;
oMemStrm2 := TMemoryStream.Create;
try
oDcp.InitStr(AnsiString(blablablabla), TDCP_sha512);
oMemStrm1.LoadFromFile(sFileName);
oDcp.EncryptStream(oMemStrm1, oMemStrm2, oMemStrm1.size);
oDcp.Burn;
result := true;
finally
FreeAndNil(oDcp);
FreeAndNil(oMemStrm1);
end;
if oMemStrm2.Size > 0 then begin
oMemStrm2.SaveToFile(sFileName);
FreeAndNil(oMemStrm2);
end;
end;
function DeCodeFile(sFileName: string): boolean;
var
oDcp: TDCP_3des;
oMemStrm1, oMemStrm2: TMemoryStream;
begin
oDcp := TDCP_3des.Create(nil);
oMemStrm1 := TMemoryStream.Create;
oMemStrm2 := TMemoryStream.Create;
try
oMemStrm1.LoadFromFile(sFileName);
oDcp.InitStr(AnsiString(blablablabla), TDCP_sha512);
oDcp.DecryptStream(oMemStrm1, oMemStrm2, oMemStrm1.size);
oDcp.Burn;
finally
FreeAndNil(oDcp);
FreeAndNil(oMemStrm1);
end;
if oMemStrm2.Size > 0 then begin
oMemStrm2.SaveToFile(sFileName);
FreeAndNil(oMemsTrm2);
result := true;
end else begin
result := false;
end;
end;
end.