Encriptar y desencriptar datos en PHP

RECU-0583 (Recurso Ejemplo)

Descripción

Este ejemplo nos enseña cómo podemos encriptar y desencriptar datos en PHP.

Ejemplos

Para el manejo de la encriptación de la información es recomendable utilizar la extensión de PHP es mcrypt, que es compatible con un número de diferentes algoritmos criptográficos. Para ver cuáles son compatibles con su plataforma, utiliza la función mcrypt_list_algorithms ():

<? Php
echo '<pre>. print_r (mcrypt_list_algorithms (), TRUE). '</ Pre> ";
?>

El encriptado y desencriptado de datos se realiza mediante el uso de las funciones mcrypt_encrypt( ) y mcrypt_decrypt( ), respectivamente. Estas funciones aceptan cinco argumentos, el primero de ellos es acerca del algoritmo a usar, el segundo es la clave . El tercer argumento incluye los datos para encriptar o desencriptar en función de la funcionalidad implementada. El cuarto argumento indica el modo de encriptado o desencriptado y finalmente el quinto argumento esta dedicado al vector de inicializacion

<?php

mcrypt_encrypt($algorithm, $key, $cleartext, $mode, $iv);

mcrypt_decrypt($algorithm, $key, $ciphertext, $mode, $iv);
?>

un ejemplo real sería el siguiente:

<?php

$algorithm = MCRYPT_BLOWFISH;
$key = 'That golden key that opens the palace of eternity.';
$data = 'The chicken escapes at dawn. Send help with Mr. Blue.';
$mode = MCRYPT_MODE_CBC;

$iv = mcrypt_create_iv(mcrypt_get_iv_size($algorithm, $mode),
                       MCRYPT_DEV_URANDOM);

$encrypted_data = mcrypt_encrypt($algorithm, $key, $data, $mode, $iv);
$plain_text = base64_encode($encrypted_data);
echo $plain_text . "\n";

$encrypted_data = base64_decode($plain_text);
$decoded = mcrypt_decrypt($algorithm, $key, $encrypted_data, $mode, $iv);
echo $decoded . "\n";
?>

y su salida sería:

NNB9WnuCYjyd3Y7vUh7XDfWFCWnQY0BsMehHNmBHbGOdJ3cM+yghABb/XyrJ+w3xz9tms74/a70=
The chicken escapes at dawn. Send help with Mr. Blue.

Contenidos relacionados

Pautas
Área: Desarrollo » Seguridad » Cifrado
Código Título Tipo Carácter
PAUT-0200 Transmisiones de datos Pauta Directriz Obligatoria