mcrypt_generic

Descripción:

Sintaxis de llamada:

string mcrypt_generic ( resource $td , string $data )

Parámetros de entrada:

  • td: Es el descriptor de cifrado.
  • data: Datos que serán cifrados.

Valor de retorno:

  • Devuelve una cadena con los datos cifrados.

Finalidad de la función:

La función mcrypt_generic() cifra datos. Los datos están rellenados con "\0" para asegurar que la longitud del dato es n*tamaño_bloque. Hay que tener en cuenta que la longitud de la cadena devuelta puede ser incluso, más larga que la de entrada, debido al relleno que sufren los datos.

Si se quiere almancena datos cifrados en una base de datos, debemos de asegurarnos de almacenar la cadena entera tal cual fue devuelta por mcrypt_generic, de otro modo la cadena no será descrifrada correctamente. Si la cadena original tiene una longitud de 10 caracteres y el tamaño de bloque es 8 (use mcrypt_enc_get_block_size() para determinar el tamaño_bloque), se necesitarán al menos 16 caracteres en el campo de la base de datos. Hay que tener en cuenta que la cadena devuelta por mdecrypt_generic() será de 16 caracteres también. Use rtrim() ($str, "\0") para eliminar el rellenado.

Si se almacenan datos en una base de datos MySQL recuerde que los campos para varchar, tienen un eliminado de espacios durante la inserción. Al poder terminar los datos cifrados en espacio (ASCII 32), el dato se puede dañar por esta eliminación. Por tanto, es recomendable que almacene los datos en campos tinyblob/tinytext.

El manejador de cifrado (encryption handle) siempre debe ser inicializado con mcrypt_generic_init() con una clave y un IV antes de llamar a esta función. Una vez que se haya hecho el cifrado, se debe de limpiar los buffers de cifrado llamando a mcrypt_generic_deinit().

Véase también:

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License