PHP와 MT4에서 암호화 데이터 주고 받기

BLUEI MQL4 0 1,094

메타트레이더에서 암호화한 데이터를 PHP에서 Decrypt하는 방법. - 메타트레이더에서 AES256으로 암호화한 데이터를 Hex데이터로 변환- PHP에서 Hex데이터를 Bin데이터로 변환 후 복호화 한다.복호화 옵션에 OPENSSL_RAW_DATA만 설정했었는데 삽질끝에 OPENSSL_ZERO_PADDING 옵션까지 주어야 한다는 사실을 알게 됨.이로써 다른분들은 두시간여의 삽질을 하지 않기를 바랍니다 ^^ string text = "{"name":"Metatrader4 Crypt"}"; string keystr = "12345678901234567890123456789012"; uchar src[],dst[],key[]; StringToCharArray(keystr, key); StringToCharArray(text, src); CryptEncode(CRYPT_AES256, src, key, dst); Print(ArrayToHex(dst)); $keystr = "12345678901234567890123456789012"; $str_dec = openssl_decrypt(hex2bin($str_enc_mt), "AES-256-ECB", $keystr, OPENSSL_ZERO_PADDING|OPENSSL_RAW_DATA); echo $str_desc;