Foros del Web » Programando para Internet » PHP »

Duda con encriptación de contraseña

Estas en el tema de Duda con encriptación de contraseña en el foro de PHP en Foros del Web. Hola, buenas tardes Tengo una duda con respecto a encriptación, sin embargo, no sé si sea culpa del servidor donde tengo alojado mi sitio o ...
  #1 (permalink)  
Antiguo 21/08/2014, 12:28
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Duda con encriptación de contraseña

Hola, buenas tardes

Tengo una duda con respecto a encriptación, sin embargo, no sé si sea culpa del servidor donde tengo alojado mi sitio o es problema de mi código. Les explico:

Tengo el siguiente código para registrar usuarios con su contraseña

Código PHP:
if(isset($_POST['guardar'])){
    
    
$param01 trim(mysqli_real_escape_string($connect$_POST['nombre']));    // Obligatorio
    
$param02 trim(mysqli_real_escape_string($connect$_POST['user']));    // Obligatorio
    
$param03 trim(mysqli_real_escape_string($connect$_POST['pass']));    // Obligatorio
    
$param04 trim(mysqli_real_escape_string($connect$_POST['confirm']));// Obligatorio
    
$param05 trim(mysqli_real_escape_string($connect$_POST['nombre']));    // Obligatorio
    
$param06 trim(mysqli_real_escape_string($connect$_POST['email']));    // Obligatorio
    
$param07 trim(mysqli_real_escape_string($connect$_POST['modrev']));
    
$param08 trim(mysqli_real_escape_string($connect$_POST['modedi']));
    
$param09 trim(mysqli_real_escape_string($connect$_POST['moddis']));
    
$param10 trim(mysqli_real_escape_string($connect$_POST['modtem']));                                                                        
    
$param11 trim(mysqli_real_escape_string($connect$_POST['paramg']));
    
$param12 trim(mysqli_real_escape_string($connect$_POST['paramp']));

    
$crypt crypt($param03'$2a$07$vasto78try14perma09wq2$'); 
        
    
// Buscamos si el usuario existe en la base de datos
    
$sqlSelectUsuario mysqli_query($connect"Select usu_usuario, usu_correo from sys_usuarios Where usu_usuario = '$param02' and usu_correo = '$param06'");
    
$rowSelectUusario mysqli_fetch_assoc($sqlSelectUsuario);
        
    
$param13 $rowSelectUusario['usu_usuario'];
    
$param14 $rowSelectUusario['usu_correo'];    

    
// Buscamos el id más alto
    
$sqlSelectMaxId mysqli_query($connect"Select MAX(id_usuario) as id_usuario from sys_usuarios");
    
$rowSelectMaxId mysqli_fetch_assoc($sqlSelectMaxId);
        
    
$param15 $rowSelectMaxId['id_usuario'] + 1;
    
$param16 $_POST['ingreso'];
    
$param17 trim(mysqli_real_escape_string($connect$_POST['grupo']));
        
    
// Realizamos comparaciones he insertamos en la base de datos de sys_usuarios
    
if($param02 == $param13){ $mensaje 'Ya existe un usuario con ese nombre. Favor de elegir otro.'; }    
    elseif(
$param06 == $param14){ $mensaje 'El correo ya ha sido registrado previamente. Favor de elegir otro.'; }
    else{
        
        
$sqlInsertUsuarios mysqli_query($connect"Insert into sys_usuarios(usu_usuario, usu_password, usu_nombre, usu_correo, usu_config_grupo, usu_config_modulos, usu_config_visor, usu_ingreso) values('$param02', '$crypt', '$param01', '$param06', $param17, $param15, $param15, '$param16')");
    }

Sin embargo, pasa lo siguiente:

Yo ingreso un usuario nuevo, con el nombre de usuario: admin y el password Xeel1425, al encriptar el usuario me lo guarda de esta forma en el servidor (proveedor de hosting): $2YRCde1ZQL.M

Sin embargo, cuando lo hago de forma local, me guarda el password de esta forma: $2a$07$vasto78try14perma09wquXPqEj0Y78Btn3wSMRH1gr obBHaM.t9S

Cuando trato de ingresar por mi usuario y contraseña, de forma local funciona muy bien, sin embargo cuando lo hago por medio del servidor no me es posible, me da la impresión de que en el servidor no está funcionando correctamente el método de encriptación, bueno eso creo yo.

Mi pregunta es, ¿el error estará de mi lado?¿o es por parte del servidor?

De antemano, agradezco por sus comentarios.

Saludos!!!
  #2 (permalink)  
Antiguo 21/08/2014, 12:44
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años
Puntos: 10
Respuesta: Duda con encriptación de contraseña

Yo encripto la contraseña con md5 y me va bien en local y servidor real. No conozco muy bien como lo intentas hacer tu, pero si te sirve de algo aqui está como lo hago yo:
Código:
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['apellidos'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString(md5($_POST['password']), "text"),
GetSQLValueString($_POST['activo'], "int"),
GetSQLValueString($_POST['nick_usuario'], "text"),
GetSQLValueString($_POST['imagen_usuario'], "text"),
GetSQLValueString($_POST['telefono'], "text"),
GetSQLValueString($_POST['direccion'], "text"),
GetSQLValueString($_POST['poblacion'], "text"),
GetSQLValueString($_POST['cod_postal'], "int"),
GetSQLValueString($_POST['provincia'], "text"),
GetSQLValueString($_POST['pais'], "text"),
GetSQLValueString($_POST['nivel'], "int"),
GetSQLValueString($_POST['fecha_alta_usuario'], "date"),
GetSQLValueString($_POST['fecha_actualizacion_usuario'], "date"));
Espero te sirva de algo, si no espera respuesta del foro que muchísimo más que yo.
Un saludo: Manyblue
  #3 (permalink)  
Antiguo 21/08/2014, 13:07
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Duda con encriptación de contraseña

Supongo que estás usando el hash en blowfish, que actualmente es lo recomendado, pero algunos servidores no tienen las mismas características y los métodos de hashing son algunas de esas características que dependiendo de la versión del php, podrían diferir.

Si ya te aseguraste que el código es el mismo en local y servidor, para comprobarlo, podrías hacer un hash fijo en local y servidor:

$hash= crypt('cadena fija', '$2a$05$'.$salt.'$');
  #4 (permalink)  
Antiguo 21/08/2014, 14:23
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Duda con encriptación de contraseña

manyblue, ocp001a gracias por responder.

En efecto ocp001a, estoy trabajando con blowfish, entonces por ello me surgió la duda si esto tendría que ver con el servidor. En el caso de md5, cuando lo utilizaba, no tenía problema alguno.

manyblue, uso este método debido a que es más seguro en el uso de contraseñas de registro de usuarios.

Intentaré lo que me comentas ocp001a y comento los resultados.

Saludos!!
  #5 (permalink)  
Antiguo 21/08/2014, 14:35
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Duda con encriptación de contraseña

De forma local arroja lo siguiente:
$2a$05$$$$$$$$$$$$$$$$$$$$$$.ZCn8nPRHO/hzv1QddaqG/IWdUYkHdvC

En el servidor esto:
$29Pw91Brd4fA

siendo 'cadena' mi cadena fija.
  #6 (permalink)  
Antiguo 21/08/2014, 15:34
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Duda con encriptación de contraseña

Bueno, al no saber las condiciones de tu servidor, te recomiendo leer la documentación oficial, sobre todo lo que respecta a el salt de blowfish

http://php.net//manual/es/function.crypt.php

Etiquetas: contraseña, mysql, select, sql, usuarios
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 09:20.