miércoles, 30 de enero de 2013

Encriptación y desencriptación en PHP

Buenas a tod@s!!

Hoy traigo un método de encriptación y desencriptación de PHP, para ocultar lo que nos venga de gusto y aumentar así nuestra privacidad.

Las funciones que vienen a continuación són simples: cogen la variable a encriptar o desencriptada y la devuelven desencriptada o encriptada respectivamente.

El cifrado de encriptación que utilizaremos es MCRYPT_RIJNDAEL_256 y el modo MCRYPT_MODE_ECB.

La función de encriptación es esta:


function encriptar($cadena)
{
$clave = "ljkljlk4ñj5lk432l532";
$cifrado = MCRYPT_RIJNDAEL_256;
$modo = MCRYPT_MODE_ECB;
$cadena_encriptada= mcrypt_encrypt($cifrado, $clave, $cadena, $modo,
mcrypt_create_iv(mcrypt_get_iv_size($cifrado, $modo), MCRYPT_RAND));
return $cadena_encriptada;
}

En la variable $clave ponemos lo que nos apetezca, lógicamente debemos ser coherentes y poner la misma en la función desencriptar que tenemos más abajo.
La función mcrypt_encrypt que utilizamos es una función que encontramos en las librerías de PHP.

La función para desencriptar es la siguiente:


function desencriptar($cadena)
{
$clave = "ljkljlk4ñj5lk432l532";
$cifrado = MCRYPT_RIJNDAEL_256;
$modo = MCRYPT_MODE_ECB;
$temp = mcrypt_decrypt($cifrado, $clave, $cadena, $modo,
mcrypt_create_iv(mcrypt_get_iv_size($cifrado, $modo), MCRYPT_RAND)
);
//Para saltar caracteres raros
$temppos = stripos($temp, chr(0));
if ($temppos !== false) {
$cadena_desencriptada = substr($temp, 0,$temppos);
}else{
$cadena_desencriptada = $temp;
}
return $cadena_desencriptada;
}

Como vemos es casi lo mismo que la anterior función; algunas veces, pero, nos encontramos que la cadena que nos devuelve la función contiene caracteres un tanto raros, utilizando la función substr como hemos visto los podemos evitar.

Nos vemos!!!


1 comentario: