Показать сообщение отдельно
  #1  
Старый 20.06.2017, 08:00
ComAlex ComAlex вне форума
Прохожий
 
Регистрация: 18.06.2017
Сообщения: 22
Версия Delphi: Delphi XE, C++
Репутация: 10
По умолчанию Использование DcpCrypt

Уважаемые знатоки, не подскажите ли, как при помощи библиотеки 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' вполне читаемо должно расшифроваться
Ответить с цитированием