![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#18
|
|||
|
|||
|
No me funciona correctamente
Hola
He leído mensajes del foro de encriptación y muchos hablan del truco nº 1oo de http://www.q3.nu/trucomania/ Pero en los comentarios sale también que no funciona correctamente y eso es lo que me pasa. También Miguel Angel comenta: A mi me funciona perfectamente, aunque con dos limitaciones. 1 Se ha de utilizar variables de tipo string (No un componente como TEdit, TMemo etc.). 2 El tamaño de la cadena a encriptar no puede ser mayor de 255 caracteres. Yo creo un fichero .txt de los Edit y en el evento click de un botón se guarda encriptado. Luego en el evento click de otro botón recuperarlo, desencriptarlo y que aparezca en los edit. Me funciona correctamente, pero en algunas palabras no. En algunas se me corta, en otras aparece en los edit parte del encriptado. Que puedo hacer? Si no funciona correctamente por los edit que puedo hacer? Gracias. Code: implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); Var MiFichero : TextFile; Nombre : String; const C1 = 52845; C2 = 11719; function Encrypt(const S: String; Key: Word): String; Var I: byte; begin SetLength(Result,Length(S)); for I := 1 to Length(S) do begin Result[i] := char(byte(S[i]) xor (Key shr 8)); Key := (byte(Result[i]) + Key) * C1 + C2; end; end; begin Edit1.Text := Encrypt(Edit1.Text,6474); Nombre := Edit1.Text; AssignFile (MiFichero,'nombre.txt'); Rewrite (MiFichero); writeln(MiFichero,Nombre); CloseFile (mifichero); Edit1.Clear end; procedure TForm2.Button2Click(Sender: TObject); Var MiFichero : TextFile; Nombre : String; const C1 = 52845; C2 = 11719; function Decrypt(const S: String; Key: Word): String; var I: byte; begin SetLength(Result,Length(S)); for I := 1 to Length(S) do begin Result[i] := char(byte(S[i]) xor (Key shr 8)); Key := (byte(S[i]) + Key) * C1 + C2; end; end; begin AssignFile (MiFichero,'nombre.txt'); Reset (MiFichero); Read(MiFichero,Nombre); CloseFile (mifichero); Edit1.Text := Nombre; Edit1.Text := Decrypt(Edit1.Text,6474); end; end. |
|
|
|