# Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Mcrypt peut opérer en 4 modes de chiffrement (CBC, OFB, CFB, et ECB). Si vous utilisez libmcrypt-2.4.x ou plus récent, les fonctions peuvent aussi opérer en mode nOFB et en mode STREAM. Nous allons présenter la technique d'utilisation de ces modes. Pour plus de références et de détails, reportez-vous au livre suivant : Applied Cryptography by Schneier (ISBN 0-471-11709-9).

- `MCRYPT_MODE_ECB` (electronic codebook) est prévu pour des données aléatoires, telles que des clés. Comme les données sont peu nombreuses et aléatoires, les inconvénients de l'ECB ont ici un effet négatif favorable.
- `MCRYPT_MODE_CBC` (cipher block chaining) est particulièrement pratique avec les fichiers dont la sécurité ECB n'est pas suffisante.
- `MCRYPT_MODE_CFB` (cipher feedback) est la meilleure méthode pour chiffrer des flots d'octets, quand les octets doivent être chiffrés un par un.
- `MCRYPT_MODE_OFB` (output feedback, in 8bit) est comparable à CFB, mais peut être utilisé lorsque des erreurs ne doivent pas être propagées.
- `MCRYPT_MODE_NOFB` (output feedback, in nbit) est comparable à OFB, mais plus sûr, car il opère avec la taille de blocs de l'algorithme.
- `MCRYPT_MODE_STREAM` est un mode supplémentaire, pour permettre l'utilisation d'algorithmes tels "WAKE" ou "RC4".

Voici quelques autres modes et méthodes de compression :

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