mcrypt_generic
(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)
mcrypt_generic — Функция шифрует данные
Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.
Описание
$td
, string $data
) : string
Эта функция шифрует данные. Данные будут дополнены символами "\0
"
для того, чтобы их размер стал кратен размеру блока. Эта функция возвращает
зашифрованные данные. Обратите внимание, что длина возвращаемой строки
может быть больше исходной из-за дополнения.
Если вы хотите хранить шифрованные данные в базе данных, убедитесь, что вы сохраняете строку полностью, как она была возвращена этой функцией, иначе вы потом не сможете ее расшифровать. Если ваша оригинальная строка была 10 символов длиной, а размер блока равен 8 (используйте mcrypt_enc_get_block_size() для определения размера блока), то размер столбца базы данных должен быть как минимум 16 символов. Обратите внимание, что строка возвращаемая mdecrypt_generic() также будет размером 16 символов. В таком случае просто используйте rtrim($str, "\0") для удаления добавленных символов.
К примеру, если вы сохраните данные в MySQL, помните, что при вставке значений в поля типа VARCHAR, у них автоматически отбрасываются пробелы из конца строки. Если зашифрованные данные кончаются на пробел (ASCII 32), то они будут повреждены при такой вставке. Лучше используйте для хранения поля типа TINYBLOB/TINYTEX или больше.
Список параметров
-
td
-
Дескриптор шифрования.
Обработчик шифрования всегда должен инициализироваться с помощью mcrypt_generic_init() с ключем и инициализирующим вектором перед вызовом функции. Как только шифрование завершено, необходимо освободить буферы шифрования путем вызова функции mcrypt_generic_deinit(). Смотрите пример в описании функции mcrypt_module_open().
-
data
-
Данные для шифрования.
Возвращаемые значения
Возвращает зашифрованные данные.
Смотрите также
- mdecrypt_generic() - Дешифровка данных
- mcrypt_generic_init() - Функция инициализирует все буферы, необходимые для шифрования
- mcrypt_generic_deinit() - Эта функция деинициализирует модуль шифрования