3v4l.org

run code in 300+ PHP versions simultaneously
<?php $message = 'test'; $key = openssl_random_pseudo_bytes(16); $iv = openssl_random_pseudo_bytes(16); $cipher = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $key, $message, MCRYPT_MODE_CBC, $iv ); $plain = openssl_decrypt( $cipher, 'aes-128-cbc', $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv ); //try to detect null padding if (mb_strlen($iv, '8bit') % mb_strlen($plain, '8bit') == 0) { preg_match_all('#([\0]+)$#', $plain, $matches); if (mb_strlen($matches[1][0], '8bit') > 1) { $plain = rtrim($plain, "\0"); trigger_error('Detected and stripped null padding. Please double-check results!'); } } var_dump( $message, bin2hex($cipher), $plain, mb_strlen($message, '8bit'), mb_strlen($plain, '8bit'), $message === $plain );

preferences:
35.56 ms | 409 KiB | 5 Q