Encriptar La Contraseña De Mysql En El Archivo De Settings. [SOLUCIONADO]


Objetivo: Encriptar La Contraseña De Mysql En El Archivo De Settings. [SOLUCIONADO]
Buenas!, ante todo perdón, pues no se muy bien donde ubicar este post.

Para guardar mis configuraciones, como muchos de vosotros uso settings, el caso, es que aunque tenga un textbox tipo passwd, cuando crea el archivo de configuración muestra la información en texto plano y sin encriptar, por lo tanto es fácilmente visible la contraseña. No es un problema para mi, ya que mi aplicación a día de hoy, solo la utilizo yo, pero por ir mejorandola poco a poco, me gustaría poder encriptar la clave.

Haciendo memoria de cosas parecidas en php, lo que hacia era encriptaba "hola" en MD5 y luego cuando queria comprobar si estaba bien o no, comparaba la encriptacion de "hola" con la encriptacion de la clave que yo había pasado. El caso, es que aquí, la contraseña la utilizo para realizar la conexión a la base de datos, por lo que imagino que deberé volver a desencriptarla para que me realice la conexion correctamente no?? alguna idea??? Todo lo que veo, es con crypt que hace precisamente lo que yo ya hacia...

Gracias!

última edición por CanihoJR el Lunes, 08 Agosto 2011, 22:00; editado 1 vez
Objetivo: Re: Encriptar La Contraseña De Mysql En El Archivo De Settings.
Hay muchas maneras de encriptar datos, pero solo algunos algoritmos están pensados para desencriptar datos. Aparte del que tu puedas inventar a tu manera, hay uno muy conocido: base64. Si bien no se puede exigir el más mínimo nivel de seguridad, puede valer para ofuscar en cierta medida las contraseñas a algún que otro curioso.

Yo tenía el mismo problema y lo solucioné de esta forma:

PUBLIC FUNCTION base64(st AS String, OPTIONAL decode AS Boolean = FALSE) AS String

DIM ret AS String

IF st THEN
IF decode THEN
SHELL Subst("echo \"&1\" | base64 -id", st) TO ret
ELSE
SHELL Subst("echo \"&1\" | base64 -", st) TO ret
ENDIF
RETURN Trim(ret)
ENDIF

END


Entonces para guardar una password en los settings:

Settings["miseccion/miclave"] = base64("mipassword")


Y para recuperarla:

mipass = base64(Settings["miseccion/miclave"], True) ' true aquí para descodificar


Eso es todo, espero que te sirva.

Perfil MP  
Objetivo: Re: Encriptar La Contraseña De Mysql En El Archivo De Settings.
Bueno, me he puesto esta tarde con tu problema (o por lo menos, lo que he entendido ) y he visto la ayuda que viene en gambasdoc, sobre el componente gb.crypt (http://gambasdoc.org/help/comp/gb.crypt/crypt?es)

Con crypt, puede hacer tanto la encriptacion como la desencriptación, para ello tiene los metodos:

Para encriptar:
- DES
- MD5 (el que tu usas en php)

Para desencriptar: -> NO DESENCRIPTA, solo comprueba la clave introducida por el usuario y el valor encriptado guardado
- Check (COMPRUEBA tanto si lo has hecho con MD5 o con DES, con el valor introducido por el usuario )

Y he hecho este pequeño programa:

http://jsbsan.blogspot.com/2011/08/...componente.html

00-encriptar-y-desencriptar-claves-en-gambas

Solo tienes que guardar el texto encriptado en tu archivo settings.

Luego lo recuperas y haces la comprobación del la clave que introduzcas el usuario, con el valor guardado en el setting, mediante la funcion crypt.check



Espero que sea esto lo que preguntes.... , de todos modos a mi me ha servido para aprender como usar este componente.

última edición por jsbsan el Lunes, 08 Agosto 2011, 20:22; editado 2 veces
Objetivo: Re: Encriptar La Contraseña De Mysql En El Archivo De Settings.
Crypt.check no desencripta, sino que comprueba que la clave guardada y la clave introducida por el usuario son iguales (claro está, justo después de volver a encriptar la clave del usuario).

Lo que necesita CanihoJR es poder encriptar y desencriptar, es decir, recuperar la contraseña original en claro.

Perfil MP  
Objetivo: Re: Encriptar La Contraseña De Mysql En El Archivo De Settings.
jguardon:

Ok, corrijo desencriptar y pongo comprueba

saludos

julio

Objetivo: Re: Encriptar La Contraseña De Mysql En El Archivo De Settings.
jsbsan, eso que tu hiciste, es exactamente lo que realizo en php, compruebo las contraseñas encriptadas, de todos modos, como siempre, mil gracias por la ayuda

jguardon, gracias!!! aunque no sea 100% seguro, no me importa, es solo por "esconder" una mijilla almenos, la contraseña y que no ande ahi en texto plano a merced de cualquier manaza, almenos que el que la saque, sepa que hace

Gracias!

última edición por CanihoJR el Lunes, 08 Agosto 2011, 22:15; editado 1 vez

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4076s (PHP: -81% SQL: 181%)
Consultas SQL: 49 - Debug off - GZIP Activado