CakeFest 2024: The Official CakePHP Conference

mcrypt_get_iv_size

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

mcrypt_get_iv_sizeВозвращает размер инициализирующего вектора для соответствующей комбинации шифра и режима

Внимание

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

Описание

mcrypt_get_iv_size(string $cipher, string $mode): int

Возвращает размер инициализирующего вектора для соответствующей заданной комбинации шифра cipher и режима mode.

Правильнее будет использовать mcrypt_enc_get_iv_size(), так как она возвращает результат по существующему дескриптору шифрования, полученного с помощью mcrypt_module_open().

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

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

Инициализирующий вектор игнорируется в режиме ECB, так как он там не нужен. Вам понадобится один и тот же инициализирующий вектор как для шифрования, так и для дешифровки, иначе все ваше шифрование превратится в тыкву.

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

Возвращает размер инициализирующего вектора в байтах. В случае возникновения ошибки будет возвращено false. Если при заданной комбинации шифра и режима инициализирующий вектор не нужен, будет возвращён ноль.

Примеры

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

<?php
echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

echo
mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

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

  • mcrypt_get_block_size() - Возвращает размер блока для указанного шифра
  • mcrypt_enc_get_iv_size() - Возвращает размер инициализирующего вектора для алгоритма
  • mcrypt_create_iv() - Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника

add a note

User Contributed Notes 1 note

up
-5
Hernanibus
7 years ago
The size of the initialization vector (iv) will be returned in bytes NOT bits, something to keep in mind specially if the iv is passed together appended or prepended with the encrypted data for decryption
To Top