PDA

Ver la Versión Completa : cifrado de hill y manejo de cadenas


isaacrg
18-03-2010, 08:06:14
ola a todos!
estoy realizandi un cifrado de hil en delphi 7 :
la parte en la que me atoro es enseparar la cadena en parejas ejemplo

cadena:=sistemas; debe de quedar asi: cadena:=si st em as;
entonce tomo la primer pareja que es 'si', entonces le asigno varibles a cada caracter c1:='s'; y c2:='i'; osea que lo hago asi c1:=cadena[1]; c2:=cadena[2]; entonces ya tengo las variables y las encripto y me arroja el resultado asi: edit3.text:=hm;
entonces no me sale el codigo pára que valla recorriendo la cadena y me valla asignando a c1 y c2 de los caracteres de la cadena, para que despues c1:=s; c2:=t; despues de encriptarlo c1 y c2 cambien a c1:=e; y c2=m;

y me imprima edit3.text:=hmemxuta



ojala y me halla explicado gracias por su ayuda de antemano

Caro
18-03-2010, 13:37:36
Hola isaacrg, por lo que he entendido tu problema esta en recorrer e ir tomando dos caracteres cada ves, puedes hacerlo de esta forma:


AuxCadena := Cadena;
While AuxCadena<>'' do
begin
C1 := AuxCadena[1];
C2 := AuxCadena[2];
...............................
//Tomamos todo menos los dos primeros caracteres
AuxCadena := Copy(AuxCadena, 3, Length(AuxCadena)-1);
end;


Saluditos

isaacrg
18-03-2010, 22:48:20
hola gracias CARO por tu ayuda la verdd en este momento no puedo comrobar el codigo pero llegando a casa lo intentare asi..

entonces si tengo otra duda te volvere a responder

GRACIAS!!

isaacrg
19-03-2010, 22:45:39
Cadena:='holamundos';
AuxCadena := Cadena;
While AuxCadena<>'' do
begin
C1 := AuxCadena[1];
C2 := AuxCadena[2];

// ...............................
//Tomamos todo menos los dos primeros caracteres
AuxCadena := Copy(AuxCadena, 3, Length(AuxCadena));
edit3.Text:=AuxCadena;
end;


hola Caro disculpa pero tengo una duda del codigo que me diste...

si coloco la linea de edit3.text:=AuxCadena; se supone que me arroja asi::


AuxCadena:'lamundos'; y no me arroja nada....

creo que me enrede feo .
gracias

BrunoBsso
20-03-2010, 00:30:57
¡He aquí la solución a todos tus problemas! Jajaja acá te muestro como separar un texto en parejas de caracteres:

//Para este programa se usaron 2 TEdits (Edit1 y Edit2) y un TButton (Button1)
function CifrarEnHill(S:String):String;
var
Aux:String;
I:Integer;
begin
Aux:='';
I:=1;
while (I<=Length(S)) do begin
Aux:=Aux+S[I]+S[I+1]+' ';
I:=I+2;
end;
if (Aux[Length(Aux)]=' ') then
SetLength(Aux,Length(Aux)-1);
Result:=Aux;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:=CifrarEnHill(Edit1.Text);
end;

Creo que eso es lo que querías.
Saludos!

EDITO: eso es lo que entendí yo, pero no sé si es lo que pedías.

isaacrg
22-03-2010, 23:22:33
Gracias por su ayuda encontre mi duda y ya termine el cifrado.

Ahora alguien digame si el tema se elimina solo? o asi hay que dejarlo.
gracias una vez mas por la ayuda

BrunoBsso
22-03-2010, 23:39:00
En ClubDelphi, a diferencia de muchos foros, los temas quedan durante mucho tiempo (no se cuánto o para siempre) para que cuando alguien tenga una duda use el buscador y encuentre un tema así.
De nada por la ayuda.
Ahora yo te pregunto a vos, ese ejemplo que te hice, ¿es lo que buscabas? Porque no sé si era así. Si era así, ya me queda para el futuro por si necesito lo mismo.
Saludos!

isaacrg
22-03-2010, 23:43:19
Simon es asi ya nadamas lo implemente a mi problema y si jalo como debe.

gracias.


"TODOS SOMOS IGNORANTES! pero NO TODOS ACERCA DEL MISMO TEMA"

BrunoBsso
22-03-2010, 23:56:51
Joya, no tenía idea que era eso de cifrado hill.
Ahora me lo guardo para cuando lo necesite :D
Gracias :D

Casimiro Notevi
23-03-2010, 00:20:27
En ClubDelphi, a diferencia de muchos foros, los temas quedan durante mucho tiempo (no se cuánto o para siempre) para que cuando alguien tenga una duda use el buscador y encuentre un tema así.
De nada por la ayuda.[..]

Exacto, aquí nunca se borra nada, ese es uno de los motivos por los que se pide el poner un título descriptivo a las preguntas, para que luego sirva a la hora de que alguien busque algo similar.

isaacrg
24-03-2010, 17:36:19
bueno pues en si lo que me ayudaste no es el cifrado de hill. pero si es una parte de toodo lo que es el cifrado.

Yo me atore en esa parte pero aun faltan mas cosas que lleva el cifrado de hill..

esto es lo que es el cifrado de hill.



bueno una vez mas gracias por tu ayuda!

"TODOS SOMOS IGNORANTES! pero NO TODOS ACERCA DEL MISMO TEMA"