Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2008
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Gracias por la ayuda,
aaa y lo que dije que no tenia acceso al buscador no es sierto es el explorador mio que tenia problema, pero ya lo solucione, pienso buscar bastante sobre este tema que me gusta...
Responder Con Cita
  #2  
Antiguo 13-11-2008
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Thumbs up

escafandra si no te es molestia de explicarme un poco sobre el ejemplo que me pusiste, lo que pasa es que tengo algunas duda sobre ese metodo de encriptacion XOR que me pusiste antreriol....

gracias de antemano.
Responder Con Cita
  #3  
Antiguo 14-11-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
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
  #4  
Antiguo 14-11-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Ahora te explico un poco el algoritmo que he usado:

La encriptación Xor es fácil de implementar y es simétrica. La misma función y la misma clave sirven para encriptar y desencriptar.

Se basa en hacer una operación binaria XOR entre un dato y una clave. Piensa en este ejemplo binario:

Dato = 10001000
Clave = 01000100
10001000 XOR 01000100 = 11001100; Dato Encriptado
11001100 XOR 01000100 = 10001000; Dato Desencriptado

si ampliamos el nº de bits tendremos una operación XOR mas amplia... Esta rutina lo amplia a 8*8 = 64 bits.
Código:
void
Crypt(void *Source, int Size, char* Clave, int Mod)
{
   BYTE *source = (BYTE*)Source;  // Convierto el puntero Source a BYTE*
   BYTE clave[8];                 // Reservo para Clave 8 BYTES
   int lClave = strlen(Clave);    // Encuentro el tamaño de la clave si es una cadena
   for(int n=0; n<8; n++)         // Fuerzo a que la clave sea de 8 bytes máximo
     clave[n] = Clave[n%lClave];

   for(int n=0; n<Size; n++, Mod++){
     source[n] ^= clave[Mod%8];   // Encripta hasta conseguir hacerlo con 8 bytes 
                                  // que es el tamaño establecido para la clave.... 
                                  // ^ Es el operador XOR en C
   }
}
Espero que así lo entiendas mejor.
Experimenta.

Saludos.
Responder Con Cita
  #5  
Antiguo 15-11-2008
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Thumbs up

Gracias por la pasiencia y la explicacion seguro que experimentare, despues les cuento como me fue

* si no les vuelvo a escribir es que se me exploto el celebro... (Broma)



Muchas Gracias por la ayuda....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ayuda programa.. cmm07 Varios 13 17-07-2008 21:37:40
Ayuda con un programa kanedor Varios 6 14-05-2008 17:48:53
Conectar archivos de ayuda a un programa GINAUNICA Varios 3 15-04-2008 01:43:35
Ayuda con programa jorgegetafe Varios 4 07-12-2007 12:38:33
Ayuda con programa de C megadanzig C++ Builder 7 19-03-2004 19:26:48


La franja horaria es GMT +2. Ahora son las 10:40:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi