Almacenamiento de una cadena de contraseña en el código

Sé cómo guardar una contraseña en una base de datos usando algoritmos hash unidireccionales. Pero en mi caso, necesito la contraseña en texto sin formato para iniciar sesión en el Servicio (API de Dropbox).

Entonces, si quiero crear una aplicación, que siempre usa el mismo nombre de usuario / contraseña para iniciar sesión en Dropbox (por ejemplo, para un cliente), ¿cómo guardaría la contraseña de los usuarios en mi código Java, para que no se pueda leer fácilmente usando un HexViewer? ?

Debería ser algo que encripte y desencripte la Cadena, pero no se puede vincular a una sola máquina.

preguntado el 16 de mayo de 11 a las 17:05

No puede cifrarlo, ¿dónde lo almacenaría? este ¿Clave de encriptación? Su única opción es aplicar un hash si Dropbox admite pasar el hash directamente (en lugar de la contraseña de texto sin formato). -

@Vladislav Si Dropbox admite pasar el hash directamente, ¿no puede el usuario usar el hash de la misma manera que la contraseña? -

Hmmmm ... No estoy pensando con claridad aquí, lo siento. Si no le pregunta nada al usuario, no puede ser seguro. Puede almacenar contraseñas en un llavero, pero debe solicitar una contraseña para el llavero. Supongo que puede almacenarlo en alguna tienda de Windows, pero el usuario aún necesita iniciar sesión (que proporciona la clave). -

en realidad, si Dropbox lo admitiera, eso destruiría todo el concepto de hash, es decir: cuando alguien roba la base de datos de hash de contraseña de Dropbox, todavía no puede iniciar sesión en su cuenta.

2 Respuestas

Bueno, cifre la contraseña con DES o AES, guarde la clave en el frasco y descifre solo cuando lo necesite. Pero si alguien lo necesita, lo revertirá fácilmente y extraerá su nombre de usuario y contraseña.

contestado el 16 de mayo de 11 a las 21:05

De acuerdo, ¿y si quisiera hacer un cifrado enlazado a máquina? ¿Java ofrece algunas clases estándar para hacer esas cosas? - Lukas Knuth

@Lukas, bueno, en este caso use la dirección MAC de la PC o HDD o el número de serie de la placa base. download.oracle.com/javase/6/docs/api/java/net/… rgagnon.com/javadetails/java-0580.html - Vladislav Rastrusny

THX, desafiantemente echaré un vistazo a esto. - Lukas Knuth

Siempre que lo necesite en texto claro en su programa, no puede estar seguro. Hagas lo que hagas, tu programa puede ser analizado, descompilado, ejecutado en una VM "comprometida", lo que sea.

contestado el 16 de mayo de 11 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.