Foros del Web » Programando para Internet » PHP »

funcion hash

Estas en el tema de funcion hash en el foro de PHP en Foros del Web. Muy buenas, Estoy intentado guardar una contraseña encripatada en una base de datos, he visto que con una funcion has esto se puede hacer. Lo ...
  #1 (permalink)  
Antiguo 26/11/2012, 11:02
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años
Puntos: 0
funcion hash

Muy buenas,
Estoy intentado guardar una contraseña encripatada en una base de datos, he visto que con una funcion has esto se puede hacer. Lo que no tengo claro es como y donde tengo que implementarla. Tengo mi codigo html en el cual encio los datos a un archivo php, que este me hace el insert en la base de datos. Donde tengo que poner esta funcion y como?
Este es mi codigo PHP:
$str=($_POST[Pass]);



$sql="INSERT INTO Persona (DNI, Nom, Cognom, Contrasenya, Direccio, CP, Ciutat, EMail, Telef)
VALUES
('$_POST[DNI]','$_POST[Nombre]','$_POST[Apellidos]','$_POST[Pass]','$_POST[Direccion]','$_POST[CodiPostal]','$_POST[Ciudad]','$_POST[Mail]','$_POST[Movil]')";

El pass es el que quiero encriptar, pero como he dicho antes no se si tengo que ponerlo aqui ho hacerlo en el codigo HTML, si es asi como lo pongo.

Alguna idea?
  #2 (permalink)  
Antiguo 26/11/2012, 11:37
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 6 meses
Puntos: 58
Respuesta: funcion hash

Es muy sencillo mira:
Código PHP:
Ver original
  1. echo hash('md5', 'password_a_hashear');
  2. //Devuelve 975b4f16d59ac0399894a20d1bc3f416

a la función hash le pasas el tipo de hash, en este caso elegí md5 que seguro que te suena, y luego el password en si. Y te devuelve la ristra de caracteres.

Ya lo que haces con ese resultado es cosa tuya.

Luego para comparar la clave con la de tu base de datos no olvides hacerle el hash.


Aún así estos métodos no son del todo seguros, mejor que nada si, desde luego, pero hay formas más eficientes de encriptar claves.

Por cierto, en
Código PHP:
Ver original
  1. $str=($_POST[Pass]);
te faltan las comillas:
Código PHP:
Ver original
  1. $str=($_POST['Pass']);
Funciona igualmente pero sin las comillas da un error que no ves (porque tienes desactivados los reportes de error por defecto) y hace más lenta la ejecución. Siendo solo un caso no pero si tuvieses muchos se notaría. Bueno sea como sea lo ideal es poner las comillas (excepto que los índices los llames por su número).
  #3 (permalink)  
Antiguo 26/11/2012, 11:50
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años
Puntos: 0
Respuesta: funcion hash

Muchas gracias por la info, he usado la funcion has y se me guarda en la BD de forma encriptada, pero de todas formas creo que no lo estoy haciendo bien, ya que la idea de esto es enviar la contraseña cifrada y esto creo que no lo hago ya que la codifico en el server.
Tengo el siguiente formulario:
<div class="formulariReg">
<form name="formRegistro" method="post" onSubmit="return validateForm()" action="insertClient.php">
<br><br>
<input class="f1" type="text" name="DNI" placeholder="DNI"><br>
<input class="f1" type="password" name="Pass" placeholder="Contrasenya"><br>
<input class="f1" type="password" name="RepitePass" placeholder="Repite Contrasenya"><br><br>
<input class="f2" type="submit" value="Enviar datos"><br>
<input class="f2" type="reset" value="Borrar datos">
</form>
</div>
La idea es que cuando le de a enviar este se envie en formato hash, pero no se como hacerlo esto es html
  #4 (permalink)  
Antiguo 26/11/2012, 12:08
 
Fecha de Ingreso: octubre-2011
Ubicación: Leon,gto.mx
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: funcion hash

Cita:
Iniciado por Macas Ver Mensaje
Muchas gracias por la info, he usado la funcion has y se me guarda en la BD de forma encriptada, pero de todas formas creo que no lo estoy haciendo bien, ya que la idea de esto es enviar la contraseña cifrada y esto creo que no lo hago ya que la codifico en el server.
Tengo el siguiente formulario:
<div class="formulariReg">
<form name="formRegistro" method="post" onSubmit="return validateForm()" action="insertClient.php">
<br><br>
<input class="f1" type="text" name="DNI" placeholder="DNI"><br>
<input class="f1" type="password" name="Pass" placeholder="Contrasenya"><br>
<input class="f1" type="password" name="RepitePass" placeholder="Repite Contrasenya"><br><br>
<input class="f2" type="submit" value="Enviar datos"><br>
<input class="f2" type="reset" value="Borrar datos">
</form>
</div>
La idea es que cuando le de a enviar este se envie en formato hash, pero no se como hacerlo esto es html
Por que no intentas pasar el Pass encriptado en MD5 como un pase de parametro....es solo una idea, yo estoy utilizando md5 para "convertir" unos campos que paso por url, luego los rescato con GET y comparo la cadena de md5 ya hecha, contra lo que esta en la base de datos que previamente paso a md5 y la comparcion es ...... este es mi codigo:

var url;
plantel=md5(plantel);
instructor=md5(instructor);
curso=md5(curso);



url=formato+"?curso="+curso+"&plantel="+plantel+"& instructor="+instructor;

luego cargas el metodo de pop up, esto lo que hace es formar una cadenota, que lleva el numero de un formato que utilizo, agrega curso=md5 del curso y asi sucesivamente en el wrobser lo unico que veras es el nombre del formato y sus respectivas variables....en md5.... para comparar lo que hago es un GET ...

en el formato y formulario que se va a utilizar:

<?php
$id_instructor =$_GET['instructor'];
$plantel=$_GET['plantel'];
$id_curso=$_GET['curso'];
include ("/inc/conexion.php");

$compara=" SELECT.....aqui se cargan datos de la BD, y se realiza la comparacion entre los campos md5 que me traje contra sus respectivos campos que se convierten en MD5 y pues tienen que ser iguales algo muy sencillo pero funcional.....?>

Saludos

Última edición por cesar_romo64; 26/11/2012 a las 12:22
  #5 (permalink)  
Antiguo 26/11/2012, 12:50
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años
Puntos: 0
Respuesta: funcion hash

Cita:
Iniciado por cesar_romo64 Ver Mensaje
Por que no intentas pasar el Pass encriptado en MD5 como un pase de parametro....
Es que eso es basicamente lo que quiero hacer, lo que no se en html como poner un codigo en php.

<form name="formRegistro" method="post" onSubmit="return validateForm()" action="insertClient.php">
<input class="f1" type="password" name=md5("Pass") placeholder="Contrasenya"><br>

Yo tenia que cuando le diera a enviar, la pagina "insertClient.php" me generaba el MD5 y me lo guardaba en la base de datos, lo que quiero hacer es que se me envie codificada, pero no se como poner el codigo php dentro del html

Perdona pero tengo un nivel bastante bajo de html i php.

Saludos
  #6 (permalink)  
Antiguo 26/11/2012, 13:22
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 19 años, 4 meses
Puntos: 36
Respuesta: funcion hash

- Si es algo mínimamente serio yo no utilizaría md5. En la propia documentación de PHP desaconsejan su uso. Utiliza PHPass

- Tienes que sanear esas variables recogidas mediantes el método POST antes de metarlas en la base de datos.

- ¿Para qué quieres mandarla codificada? Descarto que sea por temas de seguridad viendo las lagunas de tu código.

Saludos.
  #7 (permalink)  
Antiguo 26/11/2012, 13:37
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años
Puntos: 0
Respuesta: funcion hash

Es una web para la universidad, nos piden que encriptemos el envio de la contraseña con hash lo que no se como hacer el envio, lo se encriptar pero claro la información ya esta en el server. No se como enviar la clave encriptada.
  #8 (permalink)  
Antiguo 26/11/2012, 13:47
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 19 años, 4 meses
Puntos: 36
Respuesta: funcion hash

Pues tendrás que utilizar SSL o JavaScript... Saludos.
  #9 (permalink)  
Antiguo 26/11/2012, 13:50
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: funcion hash

$Pass=sha1($_POST['Pass']);
$nombre=mysql_real_escape_string($_POST['Nombre']);

Código PHP:
Ver original
  1. $sql="INSERT INTO Persona (DNI, Nom, Cognom, Contrasenya, Direccio, CP, Ciutat, EMail, Telef)
  2. VALUES
  3. ('$_POST[DNI]','$nombre','$_POST[Apellidos]','$Pass','$_POST[Direccion]','$_POST[CodiPostal]','$_POST[Ciudad]','$_POST[Mail]','$_POST[Movil]')";

por ejemploo
  #10 (permalink)  
Antiguo 26/11/2012, 13:53
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 19 años, 4 meses
Puntos: 36
Respuesta: funcion hash

Cita:
Iniciado por webankenovi Ver Mensaje
$Pass=sha1($_POST['Pass']);

Código PHP:
Ver original
  1. $sql="INSERT INTO Persona (DNI, Nom, Cognom, Contrasenya, Direccio, CP, Ciutat, EMail, Telef)
  2. VALUES
  3. ('$_POST[DNI]','$_POST[Nombre]','$_POST[Apellidos]','$Pass','$_POST[Direccion]','$_POST[CodiPostal]','$_POST[Ciudad]','$_POST[Mail]','$_POST[Movil]')";

por ejemploo
No es eso lo que quiere hacer.
  #11 (permalink)  
Antiguo 26/11/2012, 13:59
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: funcion hash

ok ok quiere hacer el hash antes de enviar ok ok sorry

deberias crear un evento en el submit Onclick y mandarlo a una funcion javascript para que te genere el hash

Última edición por webankenovi; 26/11/2012 a las 14:09
  #12 (permalink)  
Antiguo 26/11/2012, 14:11
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años
Puntos: 0
Respuesta: funcion hash

Ninguna idea de como hacerlo?
  #13 (permalink)  
Antiguo 28/11/2012, 07:38
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: funcion hash

ya te respondi

deberias crear un evento en el submit Onclick y mandarlo a una funcion javascript para que te genere el hash

ademas te pongo un link

http://www.programacion.com/articulo...n_md5_y_php3_3

Etiquetas: funcion, hash, html, sql
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 00:08.