Encriptar y desencriptar cadena con PHP
Cualquier programador Web ha podido necesitar pasar datos por $_GET – en la url – , es una forma fácil y cómoda de pasar valores de una página a otra, pero… en algunos casos puede no ser recomendable y habría que tener un mínimo de precaución, y para estos casos – y otros muchos – se puede utilizar esta clase que un día vi – no se donde, si lo supiese pondría la fuente – y sobre la que me veo obligado a escribir, mas que nada para tenerla presente yo mismo y darla a conocer a quien pueda necesitarla.
Ya de paso, esto puede servirnos en algún que otro caso para evitar inyecciones SQL, y así evitar que alguien nos mangonee lo que no debe.
Primero: Encriptar
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
Se utiliza un código secreto, que es el que se pone en $key y que cuando desencriptemos necesitaremos saberlo para que lo haga correctamente.
Para encriptar una cadena escribimos
$cadena_encriptada = encrypt("LA CADENA A ENCRIPTAR","LA CLAVE");
Segundo: Desencriptar
function decrypt($string, $key) {
$result = '';
$string = base64_decode($string);
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}
return $result;
}
Y para desencriptar la cadena escribimos
$cadena_desencriptada = decrypt("LA CADENA ENCRIPTADA","LA CLAVE QUE SE USÓ PARA ENCRIPTARLA");
Articulos relacionados
9 comentarios
buena, pero me gustaria sabe como se utiliza, al momento de hacer de presionanr un link con datos en el get. gracias…
Prueba a usar algo así, a ver si he entendido bien lo que quieres.
a href="index.php?cadena=< ?=encrypt('cadena','semilla')?>
Super! funciona perfecto Mil gracias! Dios lo bendiga
Excelente!! Muchas gracias por el aporte, lo acabo de implementar
.
Muy bueno, justo lo que necesitaba. Gracias por el aporte..
Muy Bueno muchachos, justo lo que necesitaba, lo probé funciono perfecto, lo bueno es que cada uno le pone la palabra clave que quiere.
Muchas Gracias