mdecrypt_generic

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

mdecrypt_genericDesencripta 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

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

Desencripta los datos data. Tenga en cuenta que la longitud del string desencriptado puede ser más larga que el string original, ya que puede haber sido completado con caracteres.

Parámetros

td

Un descriptor de cifrado, devuelto por la función mcrypt_module_open()

data

Los datos cifrados.

Valores devueltos

Devuelve el string desencriptado.

Ejemplos

Ejemplo #1 Ejemplo con mdecrypt_generic()

<?php
/* Datos */
$key = 'Esta es una clave de cifrado muy larga, incluso demasiado larga';
$plain_text = 'Estos son datos importantes';

/* Abre el módulo y crea un VI */
$td = mcrypt_module_open('des', '', 'ecb', '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

/* Inicializa el módulo de cifrado */
if (mcrypt_generic_init($td, $key, $iv) != -1) {

/* Cifra los datos */
$c_t = mcrypt_generic($td, $plain_text);
mcrypt_generic_deinit($td);

/* Reinicia los buffers para el descifrado */
mcrypt_generic_init($td, $key, $iv);
$p_t = mdecrypt_generic($td, $c_t);

/* Limpia */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}

if (
strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
echo
"ok\n";
} else {
echo
"error\n";
}
?>

El ejemplo anterior muestra cómo verificar que los datos antes del cifrado son los mismos que después del cifrado/descifrado. Es muy importante reiniciar el buffer de cifrado con mcrypt_generic_init() antes de descifrar los datos.

El gestor de descifrado debe ser siempre inicializado por la función mcrypt_generic_init() con una clave y un VI antes de llamar a esta función. Cuando el cifrado está hecho, es necesario liberar los datos cifrados llamando a mcrypt_generic_deinit(). Consulte mcrypt_module_open() para un ejemplo.

Ver también

add a note

User Contributed Notes

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