miércoles, 20 de agosto de 2014
PHP - Encriptación y desencriptación ASCII
Los temas de seguridad en informática son los mas importantes, independientemente de las funcionalidades que tenga una aplicación, ya que una aplicación sin seguridad será vulnerable a cualquier ataque, y cause pérdidas importancias de información o incluso monetarias.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
Suscribirse a:
Enviar comentarios
(
Atom
)
Sígueme en las Redes Sociales
Donaciones
Datos personales
Entradas populares
-
En este apartado vamos a explicar como ejercutar archivos PHP a través del terminal de Ubuntu. Lo primero que tendríamos que hacer es inst...
-
En este blog voy a comentar un tema que se utilizan en casi todas las páginas web que existen, y es el tema de la paginación. La paginaci...
-
Este post trata de la integración de la librería PHPExcel en Codeigniter, aunque se podría aplicar a cualquier librería, como por ejemplo mP...
-
Ejemplo para añadir o sumar un número determinado de hora/s, minuto/s, segundo/s a una fecha en php. Con la función strtotime se puede ...
-
Este tema es uno de los temas primordiales sobre el framework Codeigniter, ya que en alguna ocación nos hemos visto obligados a recoger dato...
© Espacio Daycry - Espacio de programación 2013 . Powered by Bootstrap , Blogger templates and RWD Testing Tool
No hay comentarios :
Publicar un comentario