![]() |
![]() |
| Paypal | 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;
|
![]() |
|
|
|