// 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 no desea usarse, // debe ser nulo // Si se encripta un buffer por partes, Mod = 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. // BYTE es unsigned char 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%lClave]; } }
// Elimina los espacios en blanco a la derecha de la cadena truncando. char* trim(char *cadena) { int n; for(n=strlen(cadena)-1; n>=0 && cadena[n]==' '; n--); n++; cadena[n]='\0'; return (char *)cadena; }
// Elimina los espacios en blanco a la izquierda de la cadena copiandola a su comienzo. char* ltrim(char *cadena) { return strrev(trim(strrev(cadena))); }
Saludos.
Edito: Me tome la libertad de modificar tu etiqueta de c++, estamos creando los botones de C# y C++.
Por el momento puedes usarlo así (manualmente)
[nobbc][code=cpp]Código C++[/code][/nobbc]
[nobbc][code=csharp]Código C#[/code][/nobbc]