PHP7.1 mcrypt alternative
You should use openssl_encrypt instead.
Consider using defuse or RNCryptor, they provide a complete solution, are being maintained and is correct.
For MCRYPT_RIJNDAEL_256
I posted a full answer for PHP7.3 here: https://stackoverflow.com/a/53937314/243782
snippet:
works like this with the phpseclib library
$rijndael = new \phpseclib\Crypt\Rijndael(\phpseclib\Crypt\Rijndael::MODE_ECB);
$rijndael->setKey(ENCRYPT_KEY);
$rijndael->setKeyLength(256);
$rijndael->disablePadding();
$rijndael->setBlockLength(256);
$decoded = $rijndael->decrypt($term);
echo encrypt_openssl($str, $key);
function encrypt_openssl($msg, $key, $iv = null) {
$iv_size = openssl_cipher_iv_length('AES-256-CBC');
if (!$iv) {
$iv = openssl_random_pseudo_bytes($iv_size);
}
$encryptedMessage = openssl_encrypt($msg, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($iv . $encryptedMessage);
}
mcrypt may be removed in PHP 7.1 alternative openssl