(PHP 4 >= 4.0.2, PHP 5, PHP 7)
mcrypt_generic — Esta función encripta datos
$td
, string $data
)Esta función encripta datos. Estos datos son rellenados con "\0" para asegurarse de que la longitud de los datos sea n * blocksize. Esta función devuelve los datos cifrados. Note que la longitud de la cadena devuelta puede ser más larga que la de entrada, debido al relleno de la información.
Si se desea almacenar los datos en una base de datos se debe asegurar que la cadena completa retornada por mcrypt_generic se almacene, o la cadena no será desencriptada apropiadamente. Si la cadena original tiene una longitud de 10 caracteres, y el tamaño del bloque es 8 (utilice mcrypt_enc_get_block_size() para determinar el tamaño del bloque), serán necerarios al menos 16 caracteres en el campo de su base de datos. Tenga en cuenta que la cadena devuelta por mdecrypt_generic() será también de 16 caracteres. Utilice rtrim($str, "\0") para remover el relleno.
Si se está, por ejemplo, almacenando los datos en una base de datos MySQL, se debe tener en cuenta que durante la inserción en campos varchar, los espacios finales son removidos. Ya que la información cifrada puede finalizar con un espacio (ASCII 32), los datos serán dañados por esta remoción. En cambio, almacene los datos en un campo tinyblob/tinytext (o mayor).
td
El descriptor de cifrado.
El gestor de cifrado debería siempre ser inicializado con mcrypt_generic_init() con una clave y un IV antes de invocar a esta función. Cuando el cifrado haya terminado, se debería liberar los buffers de cifrado al invocar a mcrypt_generic_deinit() Véase mcrypt_module_open() para un ejemplo.
data
Los datos a encriptar.
Devuelve la información cifrada.