1

I need to change the code because Mcrypt is deprecated on PHP 7.2. Unfortunately I checked a lot of solutions but my result is always different between Mcrypt and OpenSSL.

$encryption_key = "6721zO71bSAXIU3S4NBQeb1a";
$pure_string = $number.";".$port.';'.$address;
$size = mcrypt_get_block_size(MCRYPT_3DES, MCRYPT_MODE_ECB);
$pad = $size - (strlen($pure_string) % $size);
$pure_string=$pure_string . str_repeat(chr($pad), $pad);
$iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt(MCRYPT_3DES, $encryption_key,utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
$session['chip'] = base64_encode($encrypted_string);
echo $session['chip'];
$encrypted_openssl = openssl_encrypt(utf8_encode($pure_string), "DES-ECB", $encryption_key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv);
echo base64_encode($encrypted_openssl);

RESULT

MCRYPT:pEzu2yhC9iTX2mCaRr45NOvR2yfz1AR9

OPENSSL:eyJZ+sku1OBOeo9j8a8YdJaZiNtPEdRC

Someone could help me?

Thanks.

user2653710
  • 41
  • 1
  • 5
  • What exacly do you mean by "different"? Can you give a concrete example? – MechMK1 Dec 16 '17 at 15:22
  • i mean, when i convert encription_key and pure_string with mcrypt and i print session['chip'] i obtain this string "pEzu2yhC9iTX2mCaRr45NOvR2yfz1AR9" when i convert encription_key and pure_string with openssl i obtain a different string eyJZ+sku1OBOeo9j8a8YdJaZiNtPEdRC – user2653710 Dec 16 '17 at 15:42
  • Show your OpenSSL code. See [Use openssl_encrypt to replace Mcrypt for 3DES-ECB encryption](http://stackoverflow.com/q/39467008), [Can't decrypt using pgcrypto from AES-256-CBC but AES-128-CBC is OK](http://stackoverflow.com/q/43550818), [MCrypt rijndael-128 to OpenSSL aes-128-ecb conversion](http://stackoverflow.com/q/45218465/), etc. Also see [Upgrading my encryption library from Mcrypt to OpenSSL](http://stackoverflow.com/q/43329513), [Replace Mcrypt with OpenSSL](http://stackoverflow.com/q/9993909) and [Preparing for removal of Mcrypt in PHP 7.2](http://stackoverflow.com/q/42696657) – jww Dec 16 '17 at 19:34
  • $encData = openssl_encrypt(utf8_encode($pure_string), 'DES-EDE3',$encryption_key , OPENSSL_RAW_DATA); $session['chip'] = base64_encode($encData); – user2653710 Dec 18 '17 at 15:07

0 Answers0