PHP Conference Kansai 2025

mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_genericCifra los datos

Advertencia

Esta función ha sido declarada OBSOLETA a partir de PHP 7.1.0 y será ELIMINADA a partir de PHP 7.2.0. Su uso está totalmente desaconsejado.

Descripción

mcrypt_generic(resource $td, string $data): string

mcrypt_generic() cifra los datos data. Los datos se completan con "\0" para obtener un tamaño múltiplo del tamaño de un bloque. Devuelve los datos cifrados. Tenga en cuenta que la longitud del string devuelto puede ser más larga que la pasada como argumento, debido al relleno.

Si se desea almacenar los datos cifrados en una base de datos asegúrese de almacenar el string completo devuelto por esta función, de lo contrario el string no se descifrará correctamente. Si el string original contiene 10 caracteres y el tamaño de un bloque es de 8 (utilice mcrypt_enc_get_block_size() para determinar este tamaño), se necesitará al menos 16 caracteres en el campo de la base de datos. Tenga en cuenta que el string devuelto por mdecrypt_generic() tendrá 16 caracteres de longitud... utilice rtrim($str, "\0") para eliminar el relleno.

Por ejemplo, si se almacenan los datos en una base de datos MySQL, recuerde que los campos de tipo VARCHAR eliminan automáticamente los espacios adicionales durante la inserción. Como los datos cifrados pueden terminar con un espacio (ASCII 32), los datos se dañarán por esta eliminación. Almacene los datos en un campo de tipo TINYBLOB/TINYTEXT (o más grande) para que todo funcione normalmente.

Parámetros

td

El recurso de cifrado.

El manejador de cifrado td debe ser inicializado con la función mcrypt_generic_init(), con una clave y un VI, antes de llamar a esta función. Cuando el cifrado se realiza, se deben liberar los buffers llamando a la función mcrypt_generic_deinit(). Consulte mcrypt_module_open() para un ejemplo.

data

Los datos a cifrar.

Valores devueltos

Devuelve los datos cifrados.

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top