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($email, FILTER_VALIDATE_EMAIL)){ $Error07 = 'El email es inválido.'; }
else {
$crypt = crypt($pass, '$2a$%02d$');
echo $crypt;
}
}
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!!