Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2004
JDNA JDNA is offline
Miembro
 
Registrado: mar 2004
Posts: 17
Poder: 0
JDNA Va por buen camino
Como enviar mensajes encriptados por Internet

Hola amigos, tengo el siguiente problema, necesito enviar mensajes de tipo alfanumérico por internet pero tienen que estár encriptados. De hecho es un poco simple, tengo una aplicación servidor y cliente que envian y reciven los mensajes:

En el lado del servidor hay algo parecido a esto:

mensaje := AThread.Connection.ReadLn;

mensaje := AlgoritmoEncriptar.Desencriptar(mensaje);

.

MensajeEnviado := AlgoritmoEncriptar.Encriptar(MensajeEnviado);
AThread.Connection.WriteLn(MensajeEnviado);

.

y en el cliente:

with idTCPClient1 do
begin

mensaje := Login + ',' + Password;
enc := AlgoritmoEncriptar.Encriptar(mensaje);
Writeln(enc);
Respuesta := ReadLn;
RespuestaDesencrip := AlgoritmoEncriptar.Desencriptar(Respuesta);

end;



Todo funciona bien hasta que en las cadenas de caracteres encriptados, apareces los caracteres #10 y #13 y según el delphi son para ser utilizados por algunos protocolos de internet cuando se quiere enviar o recibir algún texto con ReadL o WriteLn:



"The optional ATerminator parameter indicates the end-of-line symbol for the particular protocol. If data is expected, and you do not need a custom end-of-line symbol, you can use the default ATerminator value (#0). ATerminator values include:

#0 - Default Line Feed (#10)
LF - Line Feed (#10)
CR - Carriage Return (#13)"
EOL - End-of-line (Carriage Return + Line Feed)"



El algoritmo de encriptación que estoy usando es uno que encontré en esta página:

http://www.howtodothings.com/showart...sp?article=280 de ANATOLY PODGORETSKY

Y de hecho funciona muy bien, pero como es de esperarce en el texto encriptado ocasionalmente parecen los caracteres #10 y #13, supongo porqué no estába pensado para ser utilizado en Internet y es precisamente esto lo que hace que los mensajes se mutilen cuando se trabaja con los componentes Indy cuando se detecta uno de esos caracteres de fin de lines y retorno de carro.

Quisiera saber si no existiera una mejor forma de enviar mensajes encriptados que sean compatibles con Indy????

Muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 06-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
El problema no es tando las indy... sino la combinación método-para-encriptar/método de transmisión que estas usando..

En lugar de hacer writeln/readln, podrias hacer un writebuffer/readbuffer, o bien cambiar el método para encriptar por uno que no incluya caracteres "especiales" dentro del resultado.

Por ejemplo el xorEncode xorDecode. El algoritmo está incluido en las rusas.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 08-05-2004
JDNA JDNA is offline
Miembro
 
Registrado: mar 2004
Posts: 17
Poder: 0
JDNA Va por buen camino
Gracias

Holaa, te cuento que si funcionó muy bien con writebuffer/readbuffer, muchas gracias
Responder Con Cita
  #4  
Antiguo 17-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Una cosa más que aprendo hoy
__________________
:)
Responder Con Cita
  #5  
Antiguo 17-05-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Pues yo soy de la opinion que no se deben usar algoritmos de encriptacion de conocimiento publico, puede ser un peligro, yo prefiero crear los mios y encerrarlos en DLL, de hecho cada cierta cantidad de tiempo creo uno nuevo para evitar que lo decifren
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 17-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Podes usar un algoritmo de clave pública/privada, con lo que no hay problema que el algoritmo sea público... con que mantengas bien privada la clave...

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 18-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Pues yo no sé que hay de malo en utilizar un algoritmo público como el de Borland mientras que no sepan que algoritmo has usado.

También me gusta mucho cambiar aleatoriamente la clave, en el caso de nuestro amigo, se podría hacer que el servidor enviase el número de la nueva clave al revés (Ej. si la clave es 5689, se enviaría /$/9865 encriptada en la antigua clave antes de pasar a la nueva, lo del dólar es para identificar el cambio de clave), a partir de ahí el cliente y el servidor empezarían a hablar en esa otra clave. Lo mismo al conectarse un cliente, se le daría la nueva clave.
__________________
:)
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 11:04:48.


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