Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/02/2014, 09:55
Avatar de Middrel
Middrel
 
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Uso de Blowfish en PHP

Hola, buenos días...

Estoy haciendo un formulario para registrar usuarios en una base de datos. Regularmente usaba el método por md5 para registrar los passwords de los usuarios, pero estaba leyendo que es mejor usar el método de Blowfish, del cuál aún tengo algunas dudas:

Por ejemplo, tengo el siguiente código:

Código PHP:
if(isset($_POST['agregar'])){

        
        
$user trim(mysqli_real_escape_string($connect$_POST['user'])); // Obligatorio
        
$alias trim(mysqli_real_escape_string($connect$_POST['aliase'])); // Obligatorio
        
$pass trim(mysqli_real_escape_string($connect$_POST['pass'])); // Obligatorio
        
$conf trim(mysqli_real_escape_string($connect$_POST['conf'])); // Obligatorio
        
$email trim(mysqli_real_escape_string($connect$_POST['email'])); // Obligatorio
        
$grupo trim(mysqli_real_escape_string($connect$_POST['grupo'])); // Obligatorio
        
$modulos trim(mysqli_real_escape_string($connect$_POST['modulos']));
        
$pattern '^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,15}$^';

        
// Realizamos las validaciones de cada uno de los campos obligatorios.
        
if(empty($user)){ $Error01 'El campo de usuario no puede quedar incompleto.'; }
        elseif(empty(
$alias)){ $Error02 'No puedes dejar incompleto el alias.'; }
        elseif(empty(
$pass)){ $Error03 'El campo del password no puede ir vacío.'; }
        elseif(!
preg_match($pattern$pass)){ $Error04 'Error de password'; }
        elseif(
$pass != $conf){ $Error05 'Los passwords no coinciden'; }
        elseif(empty(
$email)){ $Error06 'No puede ir vacío el campo de email'; }
        elseif(!
filter_var($emailFILTER_VALIDATE_EMAIL)){ $Error07 'El email es inválido.'; }
        else {

                
$crypt crypt($pass'$2a$%02d$');
                echo 
$crypt;
        }
    } 
Según en el manual, debo utilizar la función crypt(), pero aún tengo duda del segundo argumento que se utiliza, por el momento uso $2a$%02d$, pero en sí, ¿este segundo argumento que realiza?

y por otro lado, este password lo almacenaré en una base de datos, ¿qué tamaño debe tener el campo que lo contenga? por ejemplo en md5, me pedía que fueran 32 caracteres, pero en este caso no veo que haya un tamaño predefinido.

De antemano, agradezco por sus comentarios. Saludos!!