mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mdecrypt_genericДешифровка данных

Внимание

Эта функция объявлена УСТАРЕВШЕЙ начиная с PHP 7.1.0 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

mdecrypt_generic(resource$td, string$data): string

Функция дешифрует данные. Обратите внимание, что длина возвращаемой строки по факту может быть больше длины оригинальной нешифрованной строки. Это происходит от того, что данные могут дополняться.

Список параметров

td

Дескриптор шифрования, возвращаемый mcrypt_module_open()

data

Зашифрованные данные.

Возвращаемые значения

Возвращает расшифрованную строку.

Примеры

Пример #1 Пример использования mdecrypt_generic()

<?php

$key = 'Это очень длинный ключ. Сильно больше, чем нужен шифру.';
$plain_text = 'очень важные данные';


$td = mcrypt_module_open('des', '', 'ecb', '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);


if (mcrypt_generic_init($td, $key, $iv) != -1) {


$c_t = mcrypt_generic($td, $plain_text);
mcrypt_generic_deinit($td);


mcrypt_generic_init($td, $key, $iv);
$p_t = mdecrypt_generic($td, $c_t);


mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}

if (
strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
echo
"ок\n";
} else {
echo
"ошибка\n";
}
?>

Пример выше показывает, как проверить, что данные до шифрования совпадают с данными после дешифрования. Крайне важно переинициализировать буферы шифрования с помощью mcrypt_generic_init() перед дешифровкой данных.

Обработчик дешифрования всегда должен инициализироваться с помощью mcrypt_generic_init() с ключом и инициализирующим вектором перед вызовом функции. Как только шифрование завершено, необходимо освободить буферы шифрования путём вызова функции mcrypt_generic_deinit(). Смотрите пример в описании функции mcrypt_module_open().

Смотрите также

  • mcrypt_generic() - Функция шифрует данные
  • mcrypt_generic_init() - Функция инициализирует все буферы, необходимые для шифрования
  • mcrypt_generic_deinit() - Эта функция деинициализирует модуль шифрования
To Top