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

MQL4 0 1,530

메타트레이더에서 암호화한 데이터를 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;
목록