# 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 lié contre libmcrypt-2.4.x ou ultérieur, les fonctions peuvent aussi opérer en mode `nOFB` et en mode `STREAM`. Ci-dessous ce trouve une liste avec tous les modes de chiffrements supporté avec les constantes qui sont définit pour le mode de chiffrement. Pour une référence plus complète et des discussion voir Applied Cryptography by Schneier (ISBN 0-471-11709-9).

- `MCRYPT_MODE_ECB` (`electronic codebook`) est un mode de chiffrement par bloc qui est généralement innaproprié à la plupart des utilisations. L'utilisation de ce mode est déconseillé.
- `MCRYPT_MODE_CBC` (`cipher block chaining`) est un mode de chiffrement par bloc qui est considérablement plus sécurisé que me mode `ECB`.
- `MCRYPT_MODE_CFB` (`cipher feedback, in 8-bit mode`) est un mode de chiffrement par flot. Il est conseillé d'utiliser le mode `NCFB` plutôt que le mode `CFB`.
- `MCRYPT_MODE_OFB` (`output feedback, in 8bit`) est un mode de chiffrement par flot comparable à `CFB`, mais peut être utilisé dans des applications où la propagation d'erreur ne peut être tolérée. Il est conseillé d'utiliser le mode `NOFB` plutôt que le mode `OFB`.
- `MCRYPT_MODE_NOFB` (`output feedback, in n-bit mode`) est comparable au mode `OFB`, mais opère sur la taille de bloc complète de l'algorithme.
- `MCRYPT_MODE_STREAM` est un mode supplémentaire, pour inclure des algorithme de flot tels que `"WAKE"` ou `"RC4"`.

Mcrypt supporte d'autres mode d'opération pour lesquelles il n'y a pas de constantes prédéfinies. Ils peuvent être utilisé en passant une chaîne de caractères à la place des constantes manquantes.

- `"ctr"` (`counter mode`) est un mode de chiffrement par flot.
- `"ncfb"` (`cipher feedback, in n-bit mode`) est comparable au mode `CFB`, mais opère sur la taille de bloc complète de l'algorithme.

Voici quelques autres modes et méthodes de compression :

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