Foros del Web » Programando para Internet » PHP »

Md5

Estas en el tema de Md5 en el foro de PHP en Foros del Web. He buscado acerca de como integrar el código MD5 en mi web, pero no consigo hacerlo... ¿me ayudáis? Código PHP: if ((isset( $_POST [ "MM_insert" ])) && ( ...
  #1 (permalink)  
Antiguo 14/03/2009, 06:47
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Md5

He buscado acerca de como integrar el código MD5 en mi web, pero no consigo hacerlo...
¿me ayudáis?

Código PHP:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form_registro")) {
  
$insertSQL sprintf("INSERT INTO usuarios (usuario, contrasena, mail, nombre, apellido, dia, mes, ano, ciudad, boletin, nivel) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['nombre_de_usuario'], "text"),
                       
GetSQLValueString($_POST['contrasena'], "text"),
                       
GetSQLValueString($_POST['direccion_email'], "text"),
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['primer_apellido'], "text"),
                       
GetSQLValueString($_POST['dia'], "text"),
                       
GetSQLValueString($_POST['mes'], "text"),
                       
GetSQLValueString($_POST['ano'], "text"),
                       
GetSQLValueString($_POST['ciudad'], "text"),
                       
GetSQLValueString($_POST['boletin'], "text"),
                       
GetSQLValueString($_POST['nivel'], "text")); 
Gracias.
alemuro
  #2 (permalink)  
Antiguo 14/03/2009, 08:08
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Md5

MD5
Sería bueno que vieras tambien el SHA1. Para mí es mejor que el MD5.
SHA1

SAludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 14/03/2009, 08:14
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

Gracias por la información, és interesante el SHA1, es la primera vez que lo oigo...
el código de "sha1()" ¿dónde lo tengo de poner?
  #4 (permalink)  
Antiguo 14/03/2009, 08:24
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Md5

Se utiliza de la misma forma, en el ejemplo de la página:
mysql> SELECT SHA1('abc');
-> 'a9993e364706816aba3e25717850c26c9cd0d89d'
Así que en tu query si no me equivoco, sería:
Código php:
Ver original
  1. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form_registro")) {
  2.   $insertSQL = sprintf("INSERT INTO usuarios (usuario, contrasena, mail, nombre, apellido, dia, mes, ano, ciudad, boletin, nivel) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
  3.                        GetSQLValueString($_POST['nombre_de_usuario'], "text"),
  4.                        GetSQLValueString(SHA1($_POST['contrasena']), "text"),
  5.                        GetSQLValueString($_POST['direccion_email'], "text"),
  6.                        GetSQLValueString($_POST['nombre'], "text"),
  7.                        GetSQLValueString($_POST['primer_apellido'], "text"),
  8.                        GetSQLValueString($_POST['dia'], "text"),
  9.                        GetSQLValueString($_POST['mes'], "text"),
  10.                        GetSQLValueString($_POST['ano'], "text"),
  11.                        GetSQLValueString($_POST['ciudad'], "text"),
  12.                        GetSQLValueString($_POST['boletin'], "text"),
  13.                        GetSQLValueString($_POST['nivel'], "text"));
Espero te funcione, cualquiera cosa, solo escribe.
:D
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.

Última edición por the_web_saint; 14/03/2009 a las 08:28 Razón: recomendacción de lisandro Arg
  #5 (permalink)  
Antiguo 14/03/2009, 08:24
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Md5

Pordias usar las funciones de mysql que te dice the_web_saint cuidando que GetSQLValueString() no te lo envuelva entre comillas (creo que no deberías usarla en ese campo)

La otra opción es encriptarla antes de pasarla a GetSQLValueString con el md5() de php
Código php:
Ver original
  1. GetSQLValueString(md5($_POST['contrasena']), "text")
  #6 (permalink)  
Antiguo 14/03/2009, 08:27
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Md5

Uhmm bueno, yo no la uso en ese campo pero sería bueno que siguieras las recomendaciones de lisandro Arg, que al parecer la ha manejado mejor.

Saludos.
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 14/03/2009, 08:28
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años
Puntos: 5
Respuesta: Md5

Código PHP:
<?php

$var 
"abc";

$enc_var sha1($var);

echo 
$enc_var;

?>
resultado: a9993e364706816aba3e25717850c26c9cd0d89d

Parece que me demore mucho en escribir xD!!!

Última edición por bLEx; 14/03/2009 a las 08:29 Razón: sorry en el proceso respondieron 2 xD
  #8 (permalink)  
Antiguo 14/03/2009, 08:41
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Md5

Se puede prestar a confusión porque tanto php como mysql tienen las dos funciones, si queres usar las de php tenes que hacerlo así:

Código php:
Ver original
  1. GetSQLValueString(SHA1($_POST['contrasena']), "text"),

pero si lo haces con las de mysql no uses getSQLValueString(), no conozco bien como trabaja pero te podría alterar la contraseña.
Código php:
Ver original
  1. SHA1($_POST['contrasena']),
  #9 (permalink)  
Antiguo 14/03/2009, 08:45
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

Código php:
Ver original
  1. GetSQLValueString(md5($_POST['contrasena']), "text")

Gracias a todos :)
al final he usado éste código.

Gracias nuevamente por ayudarme, al fin me funciona el registro.

¿ Me podríais decir el código que he de poner en MySQL para que se modifiquen todos los registros transformando la contraseña normal a MD5 ?
Hace tiempo ví el código, pero no recuerdo dónde.. jeje

gracias de nuevo :P
  #10 (permalink)  
Antiguo 14/03/2009, 08:55
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Md5

No entendi a pregunta.
Si te refieres a cuando desean modificar los datos de usuario, deberás pedir la contraseña actual, la transformas a md5 y la comparas con la de la DB, si es correcta cambias los datos.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #11 (permalink)  
Antiguo 14/03/2009, 08:58
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

No, es que en la Base de datos, hay unos cuantos usuarios con contraseña sin encriptar.
Me gustaría saber cómo lo puedo hacer para que se modifiquen todas las contraseñas de golpe y se encripten a MD5.
Vi una función SQL que lo hacía. (poniéndolo en la web de la Base de datos)
  #12 (permalink)  
Antiguo 14/03/2009, 09:05
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

Ahora estoy mirandome el login, el código está bien puesto no¿?
porqué no me funciona...

Código PHP:
if (isset($_POST['login_usuario'])) {
  
$loginUsername=$_POST['login_usuario'];
  
$password=$_POST['login_contrasena'];
  
$MM_fldUserAuthorization "";
  
$MM_redirectLoginSuccess "index.php";
  
$MM_redirectLoginFailed "index.php";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_usuarios_totales_connect$usuarios_totales_connect);
  
  
$LoginRS__query=sprintf("SELECT usuario, contrasena FROM usuarios_totales WHERE usuario=%s AND contrasena=%s",
    
GetSQLValueString($loginUsername"text"), GetSQLValueString(md5($password), "text"),; 
  #13 (permalink)  
Antiguo 14/03/2009, 09:08
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Md5

Sería algo como:
Código php:
Ver original
  1. Update usuarios_totales set contrasena=md5(contrasena);
Creo que este update te seteará todos los password a md5.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #14 (permalink)  
Antiguo 14/03/2009, 09:13
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

Si, exacto, era ésto :)
muchas gracias ^^

ahora solo me falta el login.
  #15 (permalink)  
Antiguo 14/03/2009, 09:16
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Md5

Cita:
Iniciado por alemuro Ver Mensaje
Ahora estoy mirandome el login, el código está bien puesto no¿?
porqué no me funciona...

Código PHP:
if (isset($_POST['login_usuario'])) {
  
$loginUsername=$_POST['login_usuario'];
  
$password=$_POST['login_contrasena'];
  
$MM_fldUserAuthorization "";
  
$MM_redirectLoginSuccess "index.php";
  
$MM_redirectLoginFailed "index.php";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_usuarios_totales_connect$usuarios_totales_connect);
  
  
$LoginRS__query=sprintf("SELECT usuario, contrasena FROM usuarios_totales WHERE usuario=%s AND contrasena=%s",
    
GetSQLValueString($loginUsername"text"), GetSQLValueString(md5($password), "text"),; 
Esos son pequeños errores que deberías tratar de solucionarlo haciendo una sencilla depuración, solo tenes que hacer un echo $loginRS; exit; o un var_dump($loginRS);exit; para saber si tu consulta esta bién elavorada, si los campos contienen los valores correctos etc, de esa forma se te va a hacer mas sencillo. Yo veo una "," de mas al final no sé si hay otros errores.
  #16 (permalink)  
Antiguo 14/03/2009, 13:38
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

Sigo sin solucionar el error :s

No encuentro el fallo... y lo del "echo" no me dice nada :(

Alguna sugerencia?

Código php:
Ver original
  1. if (isset($_POST['login_usuario'])) {
  2.   $loginUsername=$_POST['login_usuario'];
  3.   $password=md5($_POST['login_contrasena']);
  4.   $MM_fldUserAuthorization = "";
  5.   $MM_redirectLoginSuccess = "index.php";
  6.   $MM_redirectLoginFailed = "index.php";
  7.   $MM_redirecttoReferrer = false;
  8.   mysql_select_db($database_usuarios_totales_connect, $usuarios_totales_connect);
  9.  
  10.   $LoginRS__query=sprintf("SELECT usuario, contrasena FROM usuarios_totales WHERE usuario=%s AND contrasena=%s",
  11.     GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
  #17 (permalink)  
Antiguo 14/03/2009, 14:03
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Md5

Si haces:
Código php:
Ver original
  1. $LoginRS__query=sprintf("SELECT usuario, contrasena FROM usuarios_totales WHERE usuario=%s AND contrasena=%s",GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
  2.  
  3. echo $LoginRS__query;
  4. exit; // Porque no sé como continua tu script
Te tiene que devolver la consulta que estar realizando, la copias y pegas en una ventana sql del phpmyadmin, la ejecutas y ves que resultados tenés, si te devuelve un usuario el problema esta más abajo en tu script y si no te devuelve es que el usuario y pass no coinciden
  #18 (permalink)  
Antiguo 14/03/2009, 14:35
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

No me devuelve nada...
pero es que claro, el problema esta en que el Usuario es correcto, pero la contraseña se ha de encriptar...

que lio.. :S
  #19 (permalink)  
Antiguo 14/03/2009, 14:43
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Md5

Claro, estas preguntando por una contraseña encriptada, se supone que ya está encriptada en la db
  #20 (permalink)  
Antiguo 14/03/2009, 14:47
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

Cita:
Iniciado por lisandro Arg Ver Mensaje
Claro, estas preguntando por una contraseña encriptada, se supone que ya está encriptada en la db
No me referia a esto, porque en la db estan todas las contraseñas encriptadas, el problema lo tengo en el Login, que no se como hacer que se encripte la contraseña al enviarla :(
  #21 (permalink)  
Antiguo 14/03/2009, 14:58
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Md5

Cita:
Iniciado por alemuro Ver Mensaje
No me referia a esto, porque en la db estan todas las contraseñas encriptadas, el problema lo tengo en el Login, que no se como hacer que se encripte la contraseña al enviarla :(
La contraseña está bien encriptada
Código php:
Ver original
  1. $password=md5($_POST['login_contrasena']);

Si hiciste lo que te habia comentado de pegar y ejecutar la consulta directamente en el phpmyadmin y no te devuelve nada es que los datos son incorrectos. Pegá acá la consulta resultante
  #22 (permalink)  
Antiguo 14/03/2009, 15:46
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Md5

he empezado el codigo de login de nuevo desde zero, y ya me funciona ;)

gracias por todo a todos

  #23 (permalink)  
Antiguo 08/06/2015, 17:17
 
Fecha de Ingreso: julio-2008
Mensajes: 1
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Md5

Cita:
Iniciado por lisandro Arg Ver Mensaje
Esos son pequeños errores que deberías tratar de solucionarlo haciendo una sencilla depuración, solo tenes que hacer un echo $loginRS; exit; o un var_dump($loginRS);exit; para saber si tu consulta esta bién elavorada, si los campos contienen los valores correctos etc, de esa forma se te va a hacer mas sencillo. Yo veo una "," de mas al final no sé si hay otros errores.
MIRA AMIGO, ESTAS DECLARANDO EL MD5, QUEDARIA DE LA SIGUIENTE MANERA.

if (isset($_POST['login_usuario'])) {
$loginUsername=$_POST['login_usuario'];
$password=MD5($_POST['login_contrasena']);
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "index.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_usuarios_totales_connect , $usuarios_totales_connect);

$LoginRS__query=sprintf("SELECT usuario, contrasena FROM usuarios_totales WHERE usuario=%s AND contrasena=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"),;
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:30.