Foros del Web » Programando para Internet » PHP »

codificando clave

Estas en el tema de codificando clave en el foro de PHP en Foros del Web. que tal a todos, estoy codificando las claves de los usuarios que se registren en mi web, el proceso de codificacion ya está hecho, ahora ...
  #1 (permalink)  
Antiguo 28/08/2012, 17:52
 
Fecha de Ingreso: julio-2012
Ubicación: Guatemala
Mensajes: 99
Antigüedad: 12 años, 5 meses
Puntos: 2
Pregunta codificando clave

que tal a todos, estoy codificando las claves de los usuarios que se registren en mi web, el proceso de codificacion ya está hecho, ahora el codigo de comprobacion cuando el usuario va a autenticarse con su nombre y contraseña lo tengo asi

session_start();

$registro=mysql_query("select ".$NOM.", ".$CLA." from ".$US." where ".$NOM."='$_POST[nombre]'");
$reg=mysql_fetch_array($registro);

if (($_POST['nombre']==$reg["$NOM"])&&(sha1($_POST['clave'])==$reg["$CLA"]))

etc.

esta comprobacion es la que no he logrado hacer, específicamente en la parte donde comparo $reg[] con la clave codificada... no creo que sea muy complicado pero no he logrado plasmar la idea en el lenguaje correcto
  #2 (permalink)  
Antiguo 28/08/2012, 18:02
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 8 meses
Puntos: 155
Respuesta: codificando clave

...haber mas facil explicartelo con un ejemplo...tienes la tabla "usuarios", en ella tienes la columna "nombre" y "clave"...

....para buscar en tu table haber si existe un usuario y clave...

Código PHP:
Ver original
  1. $registro = mysql_query("select nombre, clave from usuarios where nombre='" . $_POST['nombre'] . "' and clave='" . sha1($_POST['nombre']) . "' ");

ahora lo que necesitas saber es si existe algun registro que cumpla con esta condicion...

Código PHP:
Ver original
  1. if(mysql_num_rows($registro) > 0){
  2.    echo "existe usuario';
  3. }else{
  4.   echo 'no existe usuario';
  5. }

...logicamente deberias al momento de registrar los usuarios verificar que no exista la posibolidad de registros duplciados....
  #3 (permalink)  
Antiguo 28/08/2012, 18:04
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 10 meses
Puntos: 53
Respuesta: codificando clave

te marca algun error o que hace?

podrias verificar que es lo que esta tratando de hacer imprimiendo tus variables:

print $registro."<br/>";
print $_POST['nombre']."<br/>";
print $reg["$NOM"].'<br/>';
y asi
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #4 (permalink)  
Antiguo 28/08/2012, 18:13
 
Fecha de Ingreso: julio-2012
Ubicación: Guatemala
Mensajes: 99
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: codificando clave

gracias por sus respuestas, el problema basicamente es que cuando un usuario ingresa su clave por primera vez queda codificada, ahora la cosa es a la hora de autenticarse, por ejemplo si su clave es "hola" en mi base de datos aparece como 98erf8231 etc. entonces obviamente cuando el ingrese su clave "hola" no será igual a lo que tengo en mi base datos, y es aquí en donde no he podido hacer la comparacion cuando tiene que autenticarse:

if (($_POST['nombre']==$reg["$NOM"])&&(sha1($_POST['clave'])==$reg["$CLA"]))

es en esta parte donde esta el problema creo:

(sha1($_POST['clave'])==$reg["$CLA"]))
  #5 (permalink)  
Antiguo 28/08/2012, 19:10
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años, 1 mes
Puntos: 168
Respuesta: codificando clave

intenta con algo como

Código PHP:
Ver original
  1. $registro=mysql_query("select $NOM, $CLA from $US where $NOM = $_POST[nombre] AND $CLA = sha1($_POST[clave])");
  2. if(mysql_num_rows($registro) > 0){
  3. echo "logueado";
  4. }else{
  5. echo "no logueado";
  6. }

proba con algo asi
  #6 (permalink)  
Antiguo 28/08/2012, 19:56
 
Fecha de Ingreso: julio-2012
Ubicación: Guatemala
Mensajes: 99
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: codificando clave

muchas gracias a todos, me puse a investigar y estaba cometiendo un error: al codificar sha1 tira un "hash" de 40 caracteres y yo en mi base de datos tenia aceptado solo 20, asi que no estaba obteniendo todo el numero :s y por lo tanto al comparar nunca me lo iba a aceptar..

Etiquetas: sha1
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 01:37.