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

Максимально избавился от string
Всё-равно показывает абрукадабру
Скорее всего проблема в логике - что-то недописываю
Никто не сталкивался?
Код:
function DoDecrypt1: Ansistring;
var
  Cipher: TDCP_des;
  R: Ansistring;
  Key,Vector,Data,TextOut: array of Byte;
  src, enc, b64: TBytes;
  I: Integer;
  index, lunghezza, blocksize, paddingsize: integer;

begin
 SetLength(Data, 32);
 Data[0]:=HexToInt('0');
 Data[1]:=HexToInt('0');
 Data[2]:=HexToInt('0');
 Data[3]:=HexToInt('28');
 Data[4]:=HexToInt('70');
 Data[5]:=HexToInt('76');
 Data[6]:=HexToInt('65');
 Data[7]:=HexToInt('25');
 Data[8]:=HexToInt('E0');
 Data[9]:=HexToInt('2C');
 Data[10]:=HexToInt('6E');

 Data[11]:=HexToInt('5F');
 Data[12]:=HexToInt('90');
 Data[13]:=HexToInt('3E');
 Data[14]:=HexToInt('BC');
 Data[15]:=HexToInt('59');
 Data[16]:=HexToInt('AC');
 Data[17]:=HexToInt('52');
 Data[18]:=HexToInt('13');
 Data[19]:=HexToInt('8B');
 Data[20]:=HexToInt('48');

 Data[21]:=HexToInt('A4');
 Data[22]:=HexToInt('86');
 Data[23]:=HexToInt('EE');
 Data[24]:=HexToInt('84');
 Data[25]:=HexToInt('70');
 Data[26]:=HexToInt('8F');

 SetLength(Vector, 16);
 for i := 0 to 15 do Vector[i]:=0;
 SetLength(Key, 8);
 for i := 0 to 7 do Key[i]:=0;
  Cipher := TDCP_des.Create(nil);
  Cipher.Init(key[0], Length(key) * 8, addr(Vector[0]));
  lunghezza := Length(Data);
  index := SizeOf(Data);
  blocksize := Cipher.BlockSize div 8;
  paddingsize := blocksize - (lunghezza mod blocksize);
  Inc(lunghezza, paddingsize);
  SetLength(Data, lunghezza);
  for index := paddingsize downto 1 do
  begin
   Data[lunghezza - index] := 0;
  end;
  index := Length(TextOut);
  SetLength(TextOut, lunghezza);

  Cipher.CipherMode:=cmCBC;
  Cipher.DecryptCBC(Data[0],TextOut[0], length(Data));
  R:='';
  for i:=0 To lunghezza Do R:=R+AnsiChar(TextOut[i]);
  Cipher.Free;
  Result :=R;
end;
Админ: При последующем нарушении оформления кода последуют санкции!
Ответить с цитированием