PHP Как расшифровать сообщение mysql которое зашифрованно с помощью mc_encrypt?

я сделал шифровку сообщений зашифрованное сообщение отправляется в базу данных в столбец message который находится в таблице messages теперь я не пойму как сделать дешифровку Код для шифровки сообщения и отправки в базу

$message = stripslashes($message);//удал¤ем обратные слеши
$message = htmlspecialchars($message);//преобразование спецсимволов в их HTML эквиваленты
define('ENCRYPTION_KEY', 'yourkey'); // Ключ шифровки сообщений
$message = mc_encrypt($message, ENCRYPTION_KEY);
function mc_encrypt($encrypt, $key) {
    $encrypt = serialize($encrypt);
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM);
    $key = pack('H*', $key);
    $mac = hash_hmac('sha256', $encrypt, substr(bin2hex($key), -32));
    $passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $encrypt.$mac, MCRYPT_MODE_CBC, $iv);
    $encoded = base64_encode($passcrypt).'|'.base64_encode($iv);
    return $encoded;
    }
$mesres = mysql_query("INSERT INTO messages (sender, receiver, message, date) VALUES ('$sender','$receiver','$message','$date') ",$db);

Код для дешифровки сообщений:

define('ENCRYPTION_KEY', 'yourkey'); // Ключ
// Decrypt Function
function mc_decrypt($decrypt, $key) {
$decrypt = explode('|', $decrypt.'|');
$decoded = base64_decode($decrypt[0]);
$iv = base64_decode($decrypt[1]);
if(strlen($iv)!==mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC)){ return false; }
$key = pack('H*', $key);
$decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $decoded, MCRYPT_MODE_CBC, $iv));
$mac = substr($decrypted, -64);
$decrypted = substr($decrypted, 0, -64);
$calcmac = hash_hmac('sha256', $decrypted, substr(bin2hex($key), -32));
if($calcmac!==$mac){ return false; }
$decrypted = unserialize($decrypted);
return $decrypted;
}

Код для вывода сообщений и отправки сообщений с профиля:

if($_SESSION['id'] == $myrow['id']){
echo "Привет ".$myrow['login'];
echo "<br>";
echo "Личные сообщения:";
$receiver = $myrow['login'];
$tmp = mysql_query("SELECT * FROM messages WHERE receiver='$receiver' ORDER BY id DESC",$db); 
$messages = mysql_fetch_array($tmp);//извлекаем сообщения пользователя, сортируем по идентификатору в обратном порядке, т.е. самые новые сообщения будут вверху 
    echo "
    <table>
    <tr>
    
    <td>Автор: ".$messages['sender']."<br>
        Дата: ".$messages['date']."<br>
        Сообщение: ".$messages['messeage']."
        <br>
        <br>
    
    </td>  
    </tr>
    </table><br>";
} else {
echo "Ты попал на страницу юзера ".$myrow['login'];
echo "
<br>
<form action='sended.php?id=".$myrow['id']."' method='post'>
<textarea name='message' placeholder='Напишите что нибудь крутое'></textarea>
<input type='hidden' name='receiver' value='".$myrow['login']."'>
<input type='hidden' name='id' value='".$myrow['id']."'>
<button type='submit' name='submited'>Отправить</button>
</form>
";
}

Ответы (1 шт):

Автор решения: Celestine

Предположу, что для дешифровки достаточно сделать это:

"Сообщение: ". mc_decrypt($messages['messeage']) . ""
→ Ссылка