? подскажите про функцию CryptDecode()

 

Здравствуйте, помогите пожалуйста, не могу извлечь данные их Hex, что то я не правильно делаю, на одном советнике кодировал

string Key(string text)
  {
  
   string keystr="123456789";
   uchar src[],dst[],key[];
//--- подготовка ключа шифрования
   StringToCharArray(keystr,key);
//--- подготовка исходного массива src[]
   StringToCharArray(text,src);

//--- шифрование массива src[] методом DES с 56-битным ключом key[]
   int res=CryptEncode(CRYPT_DES,src,key,dst);
//--- проверка результата шифрования
   if(res>0)
     {
      //--- вывод шифрованных данных
      Print("Encoded data: "+res+" / "+ArrayToHex(dst) );
     }
   else
      Print("Ошибка в CryptEncode. Код ошибки=",GetLastError());

 

return(ArrayToHex(dst));///////////HEX далее передаю в другой советник, правильно ли это ?

  }

string ArrayToHex(uchar &arr[],int count=-1)
  {
   string res="";
   if(count<0 || count>ArraySize(arr))
      count=ArraySize(arr);
   for(int i=0; i<count; i++)
      res+=StringFormat("%.2X",arr[i]);
   return(res);
   }

string Key(string HEX="3D4DC642C7B8D924")///Другой советник принимает HEX

{

string keystr="123456789";

uchar src[],dst[],key[];

StringToCharArray(keystr,key);

StringToCharArray(HEX,dst);///правильно ли так подготавливать массив ?

int res=CryptDecode(CRYPT_DES,dst,key,src);
    
      if(res>0)
        {
         PrintFormat("");
        }
   else
      Print("Ошибка");
 return(res);
  }


при декодировании выдает ошибку 4029 не верный массив, сижу не могу понять
 
Gennady Sergienko:

Hello, please help, I can not retrieve the data they Hex, that I do not do well on one advisor coded

string Key(string text)
  {
  
   string keystr="123456789";
   uchar src[],dst[],key[];
//--- подготовка ключа шифрования
   StringToCharArray(keystr,key);
//--- подготовка исходного массива src[]
   StringToCharArray(text,src);

//--- шифрование массива src[] методом DES с 56-битным ключом key[]
   int res=CryptEncode(CRYPT_DES,src,key,dst);
//--- проверка результата шифрования
   if(res>0)
     {
      //--- вывод шифрованных данных
      Print("Encoded data: "+res+" / "+ArrayToHex(dst) );
     }
   else
      Print("Ошибка в CryptEncode. Код ошибки=",GetLastError());

 

return(ArrayToHex(dst));/////////// HEX далее передаю в другой советник, правильно ли это ?

  }

string ArrayToHex(uchar &arr[],int count=-1)
  {
   string res="";
   if(count<0 || count>ArraySize(arr))
      count=ArraySize(arr);
   for(int i=0; i<count; i++)
      res+=StringFormat("%.2X",arr[i]);
   return(res);
   }

string Key(string HEX="3D4DC642C7B8D924" )/// Другой советник принимает HEX

{

string keystr="123456789";

uchar src[],dst[],key[];

StringToCharArray(keystr,key);

StringToCharArray(HEX,dst);/// правильно ли так подготавливать массив ?

int res=CryptDecode(CRYPT_DES,dst,key,src);
    
      if(res>0)
        {
         PrintFormat("");
        }
   else
      Print("Ошибка");
 return(res);
  }


when decoding an error 4029 is not a true array, I sit I can not understand

Hi Sergienko,

I think my code can help you https://www.mql5.com/en/code/16378

Bests regards,

Romeu. 

 

 Translator:

Привет Сергиенко,

Я думаю, что мой код может помочь вам https://www.mql5.com/en/code/16378

С наилучшими пожеланиями,

Ромеу. 

Bcrypt
Bcrypt
  • голосов: 6
  • 2016.09.29
  • Romeu Bertho
  • www.mql5.com
Class for working with AES-256 encryption.
 
Romeu Bertho:

Hi Sergienko,

I think my code can help you https://www.mql5.com/en/code/16378

Bests regards,

Romeu. 

 

 Translator:

Привет Сергиенко,

Я думаю, что мой код может помочь вам https://www.mql5.com/en/code/16378

С наилучшими пожеланиями,

Ромеу. 

Thank you Romeu
Причина обращения: