CryptEncode в MT5 2009 стала выдавать другой результат

 
MT4 1170
2019.04.08 11:40:25.078 Indicator EURUSD_e,H1: 19: 50 48 49 57 46 48 52 46 48 56 32 48 48 58 48 48 58 48 48 (array_data)
2019.04.08 11:40:25.078 Indicator EURUSD_e,H1: 32: 48 68 52 56 50 72 85 72 71 88 54 78 79 77 57 90 80 74 85 70 84 53 81 71 85 52 56 81 69 48 66 53 (array_key)
CryptEncode(CRYPT_AES256, array_data, array_key, array_AES256);
2019.04.08 11:40:25.079 Indicator EURUSD_e,H1: 32: 104 69 1 168 56 114 158 108 14 137 155 117 1 111 185 116 177 164 95 71 195 45 162 75 18 89 208 170 195 4 173 14 (array_AES256)

MT5 2009
2019.04.08 11:40:23.489 Indicator (EURUSD,H1)     19: 50 48 49 57 46 48 52 46 48 56 32 48 48 58 48 48 58 48 48 (array_data)
2019.04.08 11:40:23.489 Indicator (EURUSD,H1)     32: 48 68 52 56 50 72 85 72 71 88 54 78 79 77 57 90 80 74 85 70 84 53 81 71 85 52 56 81 69 48 66 53 (array_key)
CryptEncode(CRYPT_AES256, array_data, array_key, array_AES256);
2019.04.08 11:40:23.489 Indicator (EURUSD,H1)     32: 104 69 1 168 56 114 158 108 14 137 155 117 1 111 185 116 65 151 81 51 179 93 235 208 61 177 198 167 226 131 51 67 (array_AES256)

еще пару дней назад на 2007 билде все было нормально и результат совпадал с МТ4 1170, а сегодня CryptEncode(CRYPT_AES256...) в MT5 выдает другой результат, содержимое массивов array_AES256 в MT4 и MT5 разное

 
MT5 2007
2019.04.08 11:57:00.074 Indicator (EURUSD,H1)   19: 50 48 49 57 46 48 52 46 48 56 32 48 48 58 48 48 58 48 48 (array_data)
2019.04.08 11:57:00.074 Indicator (EURUSD,H1)   32: 48 68 52 56 50 72 85 72 71 88 54 78 79 77 57 90 80 74 85 70 84 53 81 71 85 52 56 81 69 48 66 53 (array_key)
2019.04.08 11:57:00.075 Indicator (EURUSD,H1)   32: 104 69 1 168 56 114 158 108 14 137 155 117 1 111 185 116 177 164 95 71 195 45 162 75 18 89 208 170 195 4 173 14 (array_AES256)

Проверил на 2007 билде, результат как в МТ4 1170

 
Decode работает корректно?
 
fxsaber:
Decode работает корректно?

Не знаю, не проверял, мне закодированный результат надо отправлять

 
pivalexander:

еще пару дней назад на 2007 билде все было нормально и результат совпадал с МТ4 1170, а сегодня CryptEncode(CRYPT_AES256...) в MT5 выдает другой результат, содержимое массивов array_AES256 в MT4 и MT5 разное

Спасибо за сообщение.

Ошибка в шифровании AES исправлена.

 

https://www.mql5.com/en/forum/310088

В билде 2009 всё еще не работает.

Decrypt EAS256 doesn't work for me.
Decrypt EAS256 doesn't work for me.
  • 2019.04.08
  • www.mql5.com
Hello Guys. This code does not work correctly for me, where is my mistake, can someone explain, please? Using MT5. Thanks...
 

Подтверждаю!

Билд: 2009

Проблема именно с методом преобразования CRYPT_AES256

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   string Txt = "The quick brown fox jumps over the lazy dog. A0 A1 A2 A3 A4 A5 A6 A7 A8 A9"; 

//---Key
   uchar Key[32];
   ArrayInitialize(Key, 3);

//---encode
   uchar SourceArr[], EncodedArr[];
   
   StringToCharArray(Txt, SourceArr); 
   
   int EncodeRes = CryptEncode(CRYPT_AES256, SourceArr, Key, EncodedArr);
   
//---decode
   uchar DecodedArr[];
   
   int DecodeRes = CryptDecode(CRYPT_AES256, EncodedArr, Key, DecodedArr);
   
   string DecodedTxt = CharArrayToString(DecodedArr);

//---res
   Print("Txt: ",Txt);
   Print("EncodeRes: ",EncodeRes);
   
   Print("DecodedTxt: ",DecodedTxt);
   Print("DecodeRes: ",DecodeRes);
   
//---
   return;
}


Txt: The quick brown fox jumps over the lazy dog. A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

EncodeRes: 80

DecodedTxt: The quick brown fox jumps over the lazy dog. A0 A1 A2 A3 A4 A5 A  ·7О  ѓ|˜Ѕ

DecodeRes: 80

 
fxsaber:
Decode работает корректно?

Насколько я понял, проблема в кодировщике, т.к. байты при каждом кодировании меняются.

По моим наблюдениям проблем нет в декодере, по крайней мере, старые данные декодируются.

 
Marat Sultanov:

Насколько я понял, проблема в кодировщике, т.к. байты при каждом кодировании меняются.

По моим наблюдениям проблем нет в декодере, по крайней мере, старые данные декодируются.

декод работает коректно.

временно проблему можно решить добавлением мусора в оригинально закодированый массив(в конец массива), а потом игнорить этото мусор при расшифровке.

но всё таки хочется что-бы проблему поскорее решили)

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