Espacio Daycry - Espacio de programación

  • Inicio
  • Categorias
    • - Codeigniter
    • - Symfony
    • - HTML5
    • - Linux / Ubuntu
    • - PHP
    • - Jquery
  • PortFolio - Proyectos Codeiniter
    • - Encuestas Online
    • - Estadísticas - GLPI
    • - Gestión de colas
    • - Web Service - REST

miércoles, 20 de agosto de 2014

PHP - Encriptación y desencriptación ASCII

Posted by daycry at 10:12 Labels: PHP
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



Tweet

No hay comentarios :

Publicar un comentario

Entrada más reciente Entrada antigua Inicio
Suscribirse a: Enviar comentarios ( Atom )

Sígueme en las Redes Sociales



Follow @daycry9

Daycry web


Donaciones

Suscribirse a

Entradas
Atom
Entradas
Comentarios
Atom
Comentarios

Datos personales

daycry
Ver todo mi perfil

Entradas populares

  • Crear archivos PHP ejecutables por terminal UBUNTU
    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...
  • Pâginación PHP con Librería Zebra Pagination
    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...
  • PHPExcel - Codeigniter
    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...
  • PHP- Operaciones con fechas - Sumar Horas, minutos y segundos
    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 ...
  • Codeigniter - Múltiples conexiones a base de datos
    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