Cifradores mcrypt
Aqui hay una lista de los cifradores que actualmente son soportados por la
extensión mcrypt. Para una lista completa de los cifradores soportados, vea
los defines al final de mcrypt.h. La regla general con
la API de mcrypt-2.2.x es que se puede acceder al cifrador desde PHP con
MCRYPT_ciphername. Con la API de libmcrypt-2.4.x y libmcrypt-2.5.x estas constantes también
trabajan, pero es posible especificar el nombre del cifrador como una string
al invocar a mcrypt_module_open().
- MCRYPT_3DES
- MCRYPT_ARCFOUR_IV (solo libmcrypt > 2.4.x)
- MCRYPT_ARCFOUR (solo libmcrypt > 2.4.x)
- MCRYPT_BLOWFISH
- MCRYPT_CAST_128
- MCRYPT_CAST_256
- MCRYPT_CRYPT
- MCRYPT_DES
- MCRYPT_DES_COMPAT (solo libmcrypt 2.2.x)
- MCRYPT_ENIGMA (solo libmcrypt > 2.4.x, alias de MCRYPT_CRYPT)
- MCRYPT_GOST
- MCRYPT_IDEA (no libre)
- MCRYPT_LOKI97 (solo libmcrypt > 2.4.x)
- MCRYPT_MARS (solo libmcrypt > 2.4.x, no libre)
- MCRYPT_PANAMA (libmcrypt > 2.4.x only)
- MCRYPT_RIJNDAEL_128 (solo libmcrypt > 2.4.x)
- MCRYPT_RIJNDAEL_192 (solo libmcrypt > 2.4.x)
- MCRYPT_RIJNDAEL_256 (solo libmcrypt > 2.4.x)
- MCRYPT_RC2
- MCRYPT_RC4 (solo libmcrypt 2.2.x)
- MCRYPT_RC6 (solo libmcrypt > 2.4.x)
- MCRYPT_RC6_128 (solo libmcrypt 2.2.x)
- MCRYPT_RC6_192 (solo libmcrypt 2.2.x)
- MCRYPT_RC6_256 (solo libmcrypt 2.2.x)
- MCRYPT_SAFER64
- MCRYPT_SAFER128
- MCRYPT_SAFERPLUS (solo libmcrypt > 2.4.x)
- MCRYPT_SERPENT (solo libmcrypt > 2.4.x)
- MCRYPT_SERPENT_128 (solo libmcrypt 2.2.x)
- MCRYPT_SERPENT_192 (solo libmcrypt 2.2.x)
- MCRYPT_SERPENT_256 (solo libmcrypt 2.2.x)
- MCRYPT_SKIPJACK (solo libmcrypt > 2.4.x)
- MCRYPT_TEAN (solo libmcrypt 2.2.x)
- MCRYPT_THREEWAY
- MCRYPT_TRIPLEDES (solo libmcrypt > 2.4.x)
- MCRYPT_TWOFISH (para versiones de mcrypt inferiores a la 2.x, o mcrypt > 2.4.x )
- MCRYPT_TWOFISH128 (TWOFISHxxx están disponibles en las más recientes versiones 2.x, pero no en las versiones 2.4.x)
- MCRYPT_TWOFISH192
- MCRYPT_TWOFISH256
- MCRYPT_WAKE (solo libmcrypt > 2.4.x)
- MCRYPT_XTEA (solo libmcrypt > 2.4.x)
Se debe (en modo CFB
y OFB
)
o se puede (en modo CBC
) suministrar un vector de
inicialización (IV) a la función de cifrado correspondiente. El IV debe
ser único y debe ser el mismo cuando cifra/descifra. Con información
que es almacenada encriptada, se puede tomar la salida de una función
del índice con el que la información es almacenada (por ej., la clave MD5
de un nombre de archivo). Alternativamente, se puede transmitir el IV junto
con los datos encriptados (ver el capítulo 9.3 de Applied Cryptography by Schneier (ISBN 0-471-11709-9)
para una discusión sobre este tema).