Cifras de Mcrypt
Aqui está uma lista de cifras que são atualmente suportadas pela
extensão mcrypt. Para uma lista completa de cifras suportadas, consulte as definições no
final do arquivo mcrypt.h. A regra geral com a
API mcrypt-2.2.x é que a cifra pode ser acessada no PHP com
MCRYPT_ciphername. Com as APIs libmcrypt-2.4.x e libmcrypt-2.5.x, essas constantes também funcionam,
mas é possível especificar o nome da cifra como uma string com uma
chamada a mcrypt_module_open().
- MCRYPT_3DES
- MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x somente)
- MCRYPT_ARCFOUR (libmcrypt > 2.4.x somente)
- MCRYPT_BLOWFISH
- MCRYPT_CAST_128
- MCRYPT_CAST_256
- MCRYPT_CRYPT
- MCRYPT_DES
- MCRYPT_DES_COMPAT (libmcrypt 2.2.x somente)
- MCRYPT_ENIGMA (libmcrypt > 2.4.x somente, alias para MCRYPT_CRYPT)
- MCRYPT_GOST
- MCRYPT_IDEA (não-livre)
- MCRYPT_LOKI97 (libmcrypt > 2.4.x somente)
- MCRYPT_MARS (libmcrypt > 2.4.x somente, não-livre)
- MCRYPT_PANAMA (libmcrypt > 2.4.x somente)
- MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x somente)
- MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x somente)
- MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x somente)
- MCRYPT_RC2
- MCRYPT_RC4 (libmcrypt 2.2.x somente)
- MCRYPT_RC6 (libmcrypt > 2.4.x somente)
- MCRYPT_RC6_128 (libmcrypt 2.2.x somente)
- MCRYPT_RC6_192 (libmcrypt 2.2.x somente)
- MCRYPT_RC6_256 (libmcrypt 2.2.x somente)
- MCRYPT_SAFER64
- MCRYPT_SAFER128
- MCRYPT_SAFERPLUS (libmcrypt > 2.4.x somente)
- MCRYPT_SERPENT(libmcrypt > 2.4.x somente)
- MCRYPT_SERPENT_128 (libmcrypt 2.2.x somente)
- MCRYPT_SERPENT_192 (libmcrypt 2.2.x somente)
- MCRYPT_SERPENT_256 (libmcrypt 2.2.x somente)
- MCRYPT_SKIPJACK (libmcrypt > 2.4.x somente)
- MCRYPT_TEAN (libmcrypt 2.2.x somente)
- MCRYPT_THREEWAY
- MCRYPT_TRIPLEDES (libmcrypt > 2.4.x somente)
- MCRYPT_TWOFISH (para versões antigas do mcrypt 2.x ou mcrypt > 2.4.x)
- MCRYPT_TWOFISH128 (TWOFISHxxx estão disponíveis em versões mais recentes 2.x versions, mas não nas versões 2.4.x)
- MCRYPT_TWOFISH192
- MCRYPT_TWOFISH256
- MCRYPT_WAKE (libmcrypt > 2.4.x somente)
- MCRYPT_XTEA (libmcrypt > 2.4.x somente)
É obrigatório (nos modos CFB
e OFB
)
ou opcional (no modo CBC
) fornecer um
vetor de inicialização (IV) para a função de criptografia respectiva. O
IV deve ser único e deve ser o mesmo ao
descriptografar/criptografar. Com dados que são armazenados criptografados,
pode-se pegar a saída de uma função do índice sob o qual o
dados são armazenados (por exemplo, a chave MD5 do nome do arquivo).
Alternativamente, pode-se transmitir o IV junto com os dados criptografados
(consulte o capítulo 9.3 de Applied Cryptography by Schneier (ISBN 0-471-11709-9) para uma
discussão sobre esse tópico).