Ver Mensaje Individual
  #17  
Antiguo 12-09-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Esta función te puede servir:

Código:
void Crypt(void *Source, int Size, char* Clave, int Mod=0);
Código:
#include "windows.h"
#include <stdlib.h>

// CopyRight escafandra
// Rutina de encriptación Xor.
// La misma rutina encripta y desencripta.
// Clave clave en modo texto que se tratará como de 8 caracteres, 64 bits
// Mod es el módulo restante para encriptaciones parciales
// Si se encripta un buffer por partes, Mod es Size_encriptado%8
// donde Size_encriptado es el tamaño total de lo encriptado hasta ese momento.
// Mod corrige el punto de comienzo del nuevo bloque a encriptar.

void
Crypt(void *Source, int Size, char* Clave, int Mod)
{
   BYTE *source = (BYTE*)Source;
   BYTE clave[8];
   int lClave = strlen(Clave);
   for(int n=0; n<8; n++)
     clave[n] = Clave[n%lClave];

   for(int n=0; n<Size; n++, Mod++){
     source[n] ^= clave[Mod%8];
   }
}
Saludos.

Última edición por escafandra fecha: 12-09-2008 a las 12:15:32.
Responder Con Cita