PDA

Ver la Versión Completa : Encriptar password


Ledian_Fdez
04-02-2010, 16:01:36
Hola amigos de este foro:
Como bien dice el título de este hilo ¿Como podría encriptar el contenido de un campo de una tabla (en este caso password)?

grasias de antemano
salu2
:rolleyes:

duilioisola
04-02-2010, 16:06:47
Una forma muy sencilla es añadirle 1 a cada caracter del campo
Ejemplo:
IBM -- JCN
I+1 = J
B+1 = C
M+1 = N

Lo único que debes tener en cuenta es que si el caracter es el último, debes devolver el primero.

Para desencriptar, solo debes restar 1 a cada caracter.

duilioisola
04-02-2010, 16:12:06
Otra forma es sumar caracteres de la palabra clave
Ejemplo
TEXTO A ENCRIPTAR + CLAVE
--------------------------
TEXTO A ENCRIPTAR
CLAVECLAVECLAVECL
--------------------
XXXXXXXXXXXXXXXXX


T+C=___
E+L=___
X+A=___
T+V=___
O+E=___
" "+C=___
...

Para desencriptar es el metodo invertido, restando la clave al texto encriptado

Ledian_Fdez
04-02-2010, 16:25:48
duilioisola muchas gracias por tu aclaración pero en si no es eso, preferiría usar alguna función o algo similar que ya exista en MSSQL Server, esa es mi idea. He escuchado del md5 y cosas similar.

¿Alguien sabe como hacerlo?

Reitero las gracias a duilioisola :)

delphi.com.ar
04-02-2010, 16:28:23
Como bien dice el título de este hilo ¿Como podría encriptar el contenido de un campo de una tabla (en este caso password)?
El ejemplo que te pasó duilioisola, es una de las formas mas básicas de cifrar información, por desplazamiento. También es muy fácil hacer la ingeniería inversa para obtener la info. Normalmente para contraseñas se recomienda utilizar algoritmos que funcionen en un solo sentido, donde evaluarías el valor que ingreso el usuario cifrado contra el valor previamente cifrado de la base de datos, y nadie podría averiguar la password de ningún usuario.
¿Qué motor de base de datos utilizas?... te pregunto esto, porque hay algunos motores, por ejemplo MySql, que poseen funciones no reversibles como PASSWORD() o ENCRYPT() para tal fin.

Una forma muy sencilla es añadirle 1 a cada caracter del campo
Ejemplo:
IBM -- JCN
I+1 = J
B+1 = C
M+1 = N

Tu ejemplo me hizo acordar a:

I-1= H
B-1 = A
M-1 = L

Respuesta: HAL (ver link) (http://es.wikipedia.org/wiki/HAL_9000)

Ledian_Fdez
04-02-2010, 16:46:00
delphi.com.ar tiene razón, disculpen tenia que empezar por ahí, utilizo MS- SQLServer 2000 y mi aplicación es en Delphi7.

En espera de su ayuda.
un delphisiano :confused:

rgstuamigo
04-02-2010, 19:22:33
Creo que puedes chequear por aqui (http://msdn.microsoft.com/es-es/library/bb510663.aspx) en especial este (http://msdn.microsoft.com/es-es/library/ms173744.aspx) link.;).
Saludos...:)

delphi.com.ar
04-02-2010, 21:49:46
Creo que puedes chequear por aqui (http://msdn.microsoft.com/es-es/library/bb510663.aspx) en especial este (http://msdn.microsoft.com/es-es/library/ms173744.aspx) link.;).
Esos links son de versiones posteriores de SQL Server 2000. Anteriormente estuve buscando, y no fue mucho así que recomiendo insistir, pero no encontré una forma nativa en SQL Server 2000 para cifrar información. Eso no quita que puedas armar un función o una función extendida (esta la puedes escribir en Delphi si te queda cómodo) implementando el método de encriptación que te plazca. Otra opción, puede ser que cifres tu información desde tu aplicación y la compares contra la información cifrada en la base de datos.

Te dejo un link con una lista de ejemplos de algoritmos de encriptación: Delphi Encryption Examples (http://www.example-code.com/delphi/encryption.asp)

Saludos!

droguerman
04-02-2010, 23:24:04
Creo que la forma sería crear un procedimiento almacenado extendido (osea una DLL en el lenguaje que quieras) y registrarlo en el servidor SQL.