Busca la funcion que necesitas!

jueves, 20 de enero de 2011

C - Encriptación XOR en C

Bueno más que programar esta función más bien la traduje de las demás funciones xor en otros lenguajes, este tipo de encriptación no necesita que se cree otra función para desencriptar, al pasarle la función una vez encripta y pasarsela de nuevo desencripta la cadena, esta función también lleva una clave con la cual se combinan ambas cadenas para que sea una encriptación más segura

Parámetros:
Cadena a encriptar, Clave, longitud de la cadena a encriptar, longitud de la clave.

Función:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
Coder: Linkgl
http://funcion-linkgl.blogspot.com
*/
char *Xcrypt(char *cadena,char *clave,int lcadena,int lclave);
int main()
{
  char *buffer; //creamos el buffer
  buffer=(char *)malloc(10); //reservamos memoria
  memset(buffer,0,10); //limpiamos la memoria
  buffer=Xcrypt("soy linkgl","link",10,4); //encriptado
  printf("%s\n",buffer);
  printf("%s\n",Xcrypt(buffer,"link",10,4));
  getchar();
  return 0;
}

char *Xcrypt(char *cadena,char *clave,int lcadena,int lclave)
{
  int tmp;
  char *final;
  final=(char *)malloc(lcadena + 1);
  memset(final,0,lcadena + 1);
  for(int i=0;i<lcadena;i++)
  {
    tmp=(int)cadena[i] xor (int)clave[(i-1) % lclave+1]+1;
    final[i]=(char)tmp;
  }
  return final;
}

No hay comentarios:

Publicar un comentario