![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
List index out of bounds(6) al desencriptar
Hola tengo el siguiente problemilla, manejo una tabla de Passwords(Nombre y Contrasenya), la contraseña la encripto al guardarla en la tabla asi:
Código:
function Encryptar(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; Código:
function Desencryptar(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; //Codigo de trcuomania segun Borland Nota: Ya he vaciado la tabla he insertado nuevos registros una y otra vez y ocurre lo mismo. Uso Delphi 6 y Paradox. Salu2 |
#2
|
||||
|
||||
Perdon me falto añadir q C1 y C2 son constantes (C1=52845 y C2=11719).
|
#3
|
|||
|
|||
![]() Puedes probar con las siguientes funciones, a mi me han funcionado:
Esta es para Encriptar function TForm1.Cifra(Const Valor:String):String; var Indice:Integer; cadena:String; begin for Indice:=1 to Length(Valor) do begin cadena:=cadena+chr(StrToInt(IntToStr(ord(Valor[Indice])+Constante))); end; Result:=cadena; end; Esta para Desencriptar function TForm1.DesCifra(Const Valor:String):String; var Indice:Integer; cadena:String; begin for Indice:=1 to Length(Valor) do begin cadena:=cadena+chr(StrToInt(IntToStr(ord(Valor[Indice])-Constante))); end; Result:=cadena; end; |
#4
|
|||
|
|||
Mirá, recién probé lo siguiente con tus rutinas y me anduvo 10 puntos:
Eso quiere decir que el error puede estar en la BD, pero eso entraría en otro foro ![]()
__________________
Suerte .: Gydba :. |
#5
|
||||
|
||||
Creo que el problema está fuera de las rutinas, que se ven bastante sanas. Revisá las líneas posteriores a su llamada..
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#6
|
||||
|
||||
Parece ser que quizas sea esa solucion (checar codigo alrededor), ya lo he hecho pero tratare mas haber q pasa.
Salu2. |
#7
|
||||
|
||||
Pues ya cheque y la excepcion me la genera nada menos q en un locate:
Código:
if (not TUsuarios.Locate('Nom_Usuario',nombre,[])) then begin -- -- -- end; |
![]() |
|
|
![]() |
|