Encriptación en MySql
Hola, tengo un pequeño problema en el proyecto que estoy haciendo, y es el siguiente:
- Resulta que estoy utilizando la función MD5 ('str'), para encriptar passwords, con la siguiente estructura:
stmt.executeUpdate("INSERT INTO Persona (ID, Password) VALUES ('"+ID+"',MD5("+Password+"); (estoy trabajando en java)
- Pero el problema me viene a la hora de que un usuario entre en el sistema, ya que tendria que codificar el password que mete con MD5, y posteriormente compararlo con el que esta ya codificado en la base de datos. Puedo rescatar la información perfectamente de la base de datos, pero no se como comparar los 2 passwords codificados. Para conseguir que el password codificado en la base de datos , este en un string hago lo siguiente:
rs = stmt.executeQuery("SELECT Password FROM Persona WHERE ID='" + ID + "'");
Resultado = rs.getString("Password");
Vale, hasta aqui todo bien, a continuación codifico el Password que introduce el usuario para poder compararlo con el que existe en la base de datos:
rs2 = stmt.executeQuery("SELECT MD5('"+Pass+"')");
Pero ahora, ¿como los comparo?, es decir, ¿como meto eso en un string?No se como usar la funcion getString en este caso, ya que no estas resctando la informacion de una tabla.
Por favor, es importante, gracias.
- Resulta que estoy utilizando la función MD5 ('str'), para encriptar passwords, con la siguiente estructura:
stmt.executeUpdate("INSERT INTO Persona (ID, Password) VALUES ('"+ID+"',MD5("+Password+"); (estoy trabajando en java)
- Pero el problema me viene a la hora de que un usuario entre en el sistema, ya que tendria que codificar el password que mete con MD5, y posteriormente compararlo con el que esta ya codificado en la base de datos. Puedo rescatar la información perfectamente de la base de datos, pero no se como comparar los 2 passwords codificados. Para conseguir que el password codificado en la base de datos , este en un string hago lo siguiente:
rs = stmt.executeQuery("SELECT Password FROM Persona WHERE ID='" + ID + "'");
Resultado = rs.getString("Password");
Vale, hasta aqui todo bien, a continuación codifico el Password que introduce el usuario para poder compararlo con el que existe en la base de datos:
rs2 = stmt.executeQuery("SELECT MD5('"+Pass+"')");
Pero ahora, ¿como los comparo?, es decir, ¿como meto eso en un string?No se como usar la funcion getString en este caso, ya que no estas resctando la informacion de una tabla.
Por favor, es importante, gracias.
no se si sera un poco tarde contestarle pero hice algo parecido....
recoge el password del formulario que envia el usuario con
String clave = request.getParameter("contraseña");
donde contraseña es el nombre del campo de texto donde recojo la contraseña...
luego lo comparo con la cadena que tengo en la base de datos
seria
ResultSet rs = stmt.executeQuery("select * from nombre_tabla where clave = md5('"+clave+"') as clave ");
lo que hace es transformar la contraseña que entra el usuario en una cadena md5 y luego compararlo con el que hay en la base de datos ...
si acaso necesita algo mas escribame
recoge el password del formulario que envia el usuario con
String clave = request.getParameter("contraseña");
donde contraseña es el nombre del campo de texto donde recojo la contraseña...
luego lo comparo con la cadena que tengo en la base de datos
seria
ResultSet rs = stmt.executeQuery("select * from nombre_tabla where clave = md5('"+clave+"') as clave ");
lo que hace es transformar la contraseña que entra el usuario en una cadena md5 y luego compararlo con el que hay en la base de datos ...
si acaso necesita algo mas escribame
