Por eso os voy a mostrar un código que permite encriptar cadenas de datos para almacenar los datos encriptados en bases de datos o simplemente para transportar datos de un servidor a otro.
Funcionamiento
Este código se base en la encriptación mediante códigos ASCII y una contraseña de encriptación y desencriptación, ya que sin esa contraseña no se podría realizar el cifrado de datos.Ejemplo
<?php function encript($var, $clave){ $string = $var; $clave = $clave; do { $clave = $clave . $clave; } while (strlen($string) > strlen($clave)); $b3 = ""; for($i=0; $i<strlen($string); $i++){ $a = ord($string[$i]); $b = ord($clave[$i]); if ( ($i % 2) == 0 ){ $a3 = $a + $b; if($a3 > 255){ $a3 = $a3 - 255; } }else{ $a3 = $a - $b; if( $a3 < 1 ){ $a3 = $a3 + 255; } } if( $b3 == "" ){ $b3 = $a3; }else{ $b3 = $b3.",".$a3; } } return $b3; } function decript($var, $clave){ $let=1; $r=""; $clave = $clave; $cadena = $var; //$cadena_tratada = str_replace(","," ", $cadena); $cadena_tratada = explode(",", $cadena); do { $clave = $clave . $clave; } while (count($cadena_tratada) > strlen($clave)); for($i=0;$i < count($cadena_tratada);$i++){ $a = $cadena_tratada[$i]; $b = ord($clave[$i]); if ( ($i % 2) == 0 ){ $a3 = $a - $b; if($a3 < 1){ $a3 = $a3 + 255; } }else{ $a3 = $a + $b; if($a3 > 255){ $a3 = $a3 - 255; } } if( $r == "" ){ $r = chr($a3); }else{ $r = $r.chr($a3); } } return $r; } $var = "string a convertir"; $clave1="1234_!"; $varEncript = encript($var, $clave1); echo $varEncript; echo"<br>"; $varDecript = decript($varEncript, $clave1); echo $varDecript; ?>
Como se puede observar hay dos funciones una para encriptar y otra para desencriptar la cadena.
En la primera función para encriptar la cadena utulizo la función ord() de PHP, ya que esta función convierte en ASCII un carácter concreto, y para desencriptar utilizo la función chr(), y realiza el proceso inverso, pasar de ASCII a carácter.
El valor 255 que utilizo como filtro en las funciones básicamente es porque en el código ASCII existen 255 valores.
Visualizar tabla ascii
No hay comentarios:
Publicar un comentario