Уважаемые знатоки, не подскажите ли, как при помощи библиотеки DcpCrypt решить задачу:
Зашифровать (расшифровать) данные по алгоритму DEC-CBC c ключом ="0000000000000000" (используется только 56 бит)
и вектором "0000000000000000" (8 байт - используется все 64 бит)
Используется ANSII кодировка
Делаю расшифровку так:
Код:
function DoDecrypt: string;
var
Cipher: TDCP_des;
KeyStr: string;
TextIn, TextOut : String;
Vector : array of Byte;
src, enc, b64: TBytes;
I,index, lunghezza, blocksize, paddingsize: integer;
begin
SetLength(Vector, 8);
for i:=0 To 7 do Vector[i] := 0;
KeyStr:='00000000';
Cipher := TDCP_des.Create(Nil);
Cipher.Init(keystr,Length(keystr)*8, addr(Vector[0]));
TextIn := 'pve%`,n_><Y,RH$nphZd)? K JSN\2';
Cipher.InitStr(TextIn,TDCP_sha1);
lunghezza := Length(TextIn);
index := SizeOf(TextIn);
blocksize := Cipher.BlockSize div 8;
paddingsize:= blocksize - (lunghezza mod blocksize);
Inc(lunghezza, paddingsize);
SetLength(TextIn, lunghezza);
for index:=paddingsize downto 1 do
begin
TextIn[lunghezza - index] := char(0);
end;
index := Length(TextOut);
SetLength(TextOut, lunghezza);
Cipher.DecryptCBC(TextIn[1], TextOut[1], length(TextIn));
Result:=Cipher.DecryptString(TextOut);
End;
Админ: Пользуемся тегами при оформлении кода!
Но получается абракадабра
P.S.: Знаю, что слово 'pve%`,n_><Y,RH$nphZd)? K JSN\2' вполне читаемо должно расшифроваться