El problema es que estás generando otro vector al tratar de desencriptar al usar dos veces
mcrypt_create_iv. Mira este ejemplo, lo tomé del manual y lo modifiqué para que tengas una idea de lo que puedes hacer.
Código PHP:
Ver original<?php
function cryptMessage($message, $key){
/* Open the cipher */
/* Create the IV and determine the keysize length, use MCRYPT_RAND
* on Windows instead */
/* Create key */
/* Intialize encryption */
/* Encrypt data */
/* Terminate encryption handler */
return array('crypt' => $encrypted, 'key' => $key,
'iv' => $iv);
}
function decryptMessage($encrypted, $key, $iv){
/* Open the cipher */
/* Initialize encryption module for decryption */
/* Decrypt encrypted string */
/* Terminate decryption handle and close module */
/* Show string */
}
$crypt = cryptMessage('mensaje bien importante a ver si sale', 'llave importante');
echo decryptMessage($crypt['crypt'], $crypt['key'], $crypt['iv']);