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).