# Предопределённые константы

Следующие константы определяются модулем и доступны, только если модуль либо собрали в PHP, либо динамически загрузили при выполнении кода.

Mcrypt может работать в четырёх режимах блочного шифрования (`CBC`, `OFB`, `CFB` и `ECB`). Если слинковано с libmcrypt-2.4.x или выше, функции также могут работать в режимах `nOFB` и `STREAM`. Ниже вы найдёте список всех поддерживаемых режимов шифрования вместе с константами, которые определены для них. Более подробно читайте Applied Cryptography by Schneier (ISBN 0-471-11709-9).

- `MCRYPT_MODE_ECB` (`electronic codebook`) - это режим блочного шифрования, который в целом непригоден для большинства задач. Использование этого режима не рекомендовано.
- `MCRYPT_MODE_CBC` (`cipher block chaining`) - это режим блочного шифрования, который немногим лучше `ECB`.
- `MCRYPT_MODE_CFB` (`cipher feedback, в 8-битном режиме`) - это режим потокового шифрования. Рекомендуется использовать режим `NCFB`, а не `CFB`.
- `MCRYPT_MODE_OFB` (`output feedback, в 8-битном режиме`) - это режим потокового шифрования сравнимый с `CFB`, но может использоваться в приложениях, нетерпимых к распространению ошибок. Рекомендуется использовать режим `NOFB` вместо `OFB`.
- `MCRYPT_MODE_NOFB` (`output feedback, в N-битном режиме`) - сравним с режимом `OFB`, но оперирует полным размером блока алгоритма.
- `MCRYPT_MODE_STREAM` - это дополнительный режим для подключения некоторых потоковых алгоритмов, таких как `"WAKE"` или `"RC4"`.

Mcrypt поддерживает некоторые другие режимы работы для которых нет предопределённых констант. Их можно задавать с помощью строки вместо константы.

- `"ctr"` (`counter mode`) - режим потокового шифрования.
- `"ncfb"` (`cipher feedback, в N-битном режиме`) - сравним с режимом `CFB`, но оперирует полным размером блока алгоритма.

Некоторые другие режимы и константы генераторов случайных чисел:

`MCRYPT_ENCRYPT` (int)
`MCRYPT_DECRYPT` (int)
`MCRYPT_DEV_RANDOM` (int)
`MCRYPT_DEV_URANDOM` (int)
`MCRYPT_RAND` (int)

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open