(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)
mcrypt_generic — Esta função criptografa dados
Esta função foi DESCONTINUADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.
Esta função criptografa dados. Os dados são preenchidos com "\0
"
para garantir que o comprimento dos dados seja n * tamanho_do_bloco. Esta
função retorna os dados criptografados. Observe que o comprimento
da string retornada pode, de fato, ser maior que a entrada,
devido ao preenchimento dos dados.
Se houver necessidade de armazenar os dados criptografados em um banco de dados, certifique-se de armazenar a string inteira conforme retornada por mcrypt_generic, ou a string não será totalmente descriptografada corretamente. Se a string original tiver 10 caracteres e o tamanho do bloco for 8 (use mcrypt_enc_get_block_size() para determinar o tamanho do bloco), seriam necessários pelo menos 16 caracteres no campo do banco de dados. Observe que a string retornada por mdecrypt_generic() terá 16 caracteres também... use rtrim($str, "\0") para remover o preenchimento.
Se os dados forem, por exemplo, armazenados em um banco de dados MySQL, lembre-se de que campos "varchar" automaticamente têm espaços finais removidos durante a inserção. Como dados criptografados podem terminar em um espaço (ASCII 32), os dados serão corrompidos por essa remoção. Em vez disso, armazene os dados em um campo tinyblob/tinytext (ou maior).
td
O descritor de criptografia.
O identificador de criptografia deve sempre ser inicializado com mcrypt_generic_init() com uma chave e um IV antes de chamar esta função. Onde a criptografia é feita, devem ser liberados os buffers de criptografia chamando mcrypt_generic_deinit(). Veja mcrypt_module_open() para um exemplo.
data
Os dados a serem criptografados.
Retorna os dados criptografados.