Ver Mensaje Individual
  #33  
Antiguo 14-11-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
Bueno, no es dificil de usar.
1º Define un buffer, puede ser con un contenide texto o binario.
2º Define una clave.
3º Encríptalo.

Código:
char Buffer[] = "Este texto se va a encriptar."
DWORD Clave = 0x76349714;  
Crypt(Buffer, l, (char*)&Clave, 0);  // Encripta el Buffer
Si quieres hacerlo por partes, para escribir en un archivo...., cada parte:

Siendo HFile el manejador de un fichero abierto y
int WritePos lo ya escrito en el fichero

Código:
HFile = open(FileName.c_str(), O_CREAT | O_WRONLY | O_BINARY);
.
.
.
if(HFile)
if(WritePos < Text.Length()){
     int Mod = WritePos%8;
     int l = Text.Length()-WritePos;
     BYTE *buffer = new BYTE[l+1];
     buffer[l] = 0;
     strcpy((char*)buffer, Text.c_str()+WritePos); // Hacemos una copia 
     Crypt(buffer, l, (char*)&Clave, Mod);         // Encripta el buffer
     write(HFile, buffer, l);
     WritePos  += l;
     delete buffer;
}
El resultado, es binario, no es texto, por lo que se guardará en un archivo abierto en modo binario.

El buffer pasado como puntero se encriptam, por lo que si lo que se quiere en encriptar una copia y retener el original, deberá hacerse la misma antes de llamar a la función, y pasarle el puntero adecuado.

Experimenta.

Saludos.
Responder Con Cita