Ejemplo mcrypt_generic

Ejemplo 1

Descripción

En este ejemplo se cifran datos y descrifran datos y limpiamos los buffers con la función mcrypt_generic_deinit().

Para ello creamos un descriptor de cifrado, abriendo un módulo de cifrado con la función mcrypt_module_open(). A continuación obtenemos el tamaño del vector de inicialización con mcrypt_enc_get_iv_size(), y lo creamos con mcrypt_create(), utilizando la generación de números aleatorios del sistema. Acto seguido creamos la clave, habiendo determinado antes su tamaño con mcrypt_enc_get_key_size().

Para comenzar el cifrado se inicializa con mcrypt_generic_init y ciframos con mcrypt_generic()

Finalizamos el cifrado y limpiamos los buffers con mcrypt_generic_deinit().

Para el descifrado se inicializa el módulo de cifrado con mcrypt_generic_init(), para a acontinuación descifrar el texto con mdecrypt_generic() y finalizamos el cifrado con las funciones mcrypt_generic_deinit() y mcrypt_module_close().

mcrypt_20.png

Código

<?php
 
// Inicializamos la semilla de números aleatorios 
    srand((double) microtime() * 1000000); 
 
    // Abrimos el módulo del algoritmo DES en modo cfb 
    $descriptor = mcrypt_module_open('des', '','cfb', '');
 
    // Obtenemos el tamaño del vector de inicialización 
    $tam_iv = mcrypt_enc_get_iv_size($descriptor);
 
    // Creamos el vector de inicialización utilizando la generación de números aleatorios del sistema
    $iv = mcrypt_create_iv($tam_iv, MCRYPT_RAND);
 
    /* Determinamos el tamaño de la clave*/
    $tam_clave = mcrypt_enc_get_key_size($descriptor);
 
    /* Creamos la clave */
    $clave = substr(md5('nuestra clave secreta'), 0, $tam_clave);
 
    /* Inicializamos el cifrado y ciframos los datos */
    mcrypt_generic_init($descriptor, $clave, $iv);
    $Texto_cifrado = mcrypt_generic($descriptor, 'Estos datos van a ser cifrados');
 
    echo "El texto cifrado es:" .trim($Texto_cifrado) . "\n";
 
    /* Finaliza el cifrado y limpiamos los buffers */
    mcrypt_generic_deinit($descriptor);
 
    /* Inicializa el modulo de cifrado para el descifrado */
    mcrypt_generic_init($descriptor, $clave, $iv);
 
    /* Descifra el texto cifrado */
    $Texto_descifrado = mdecrypt_generic($descriptor, $Texto_cifrado);
 
    /* Finaliza el cifrado y limpia los buffers */
    mcrypt_generic_deinit($descriptor);
    mcrypt_module_close($descriptor);
    echo "</br>";
 
    /* Mostramos el texto descifrado */
    echo "El texto descifrado es:" .trim($Texto_descifrado) . "\n";
?>
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License