Mcrypt ciphers
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 em mcrypt.h. A regra geral com a API mcrypt-2.2.x é que você pode acessar a cifra 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 para 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)
Você deve (em modo CFB
e OFB
)
ou pode (em modo CBC
) fornecer um
vetor de inicialização (IV) para a função de cifra respectiva. O
IV deve ser único e deve ser o mesmo ao
descriptografar/criptografar. Com dados que são armazenados criptografados, você
pode 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, você pode 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).