Cómo crear y almacenar hashes de contraseñas con Blowfish en PHP

1) ¿Cómo se crean hashes seguros de contraseñas Blowfish con crypt ()?

$hash = crypt('somePassword', '$2a$07$nGYCCmhrzjrgdcxjH

1a) ¿Cuál es el significado de "$ 2a"? ¿Simplemente indica que se debe usar el algoritmo Blowfish?
1b) ¿Cuál es el significado de "$ 07"? ¿Un valor más alto implica un hash más seguro?
1c) ¿Cuál es el significado de "$ nGYCCmhrzjrgdcxjH $3$quot;? ¿Es esta la sal que se utilizará? ¿Debería esto ser generado aleatoriamente? Codificado?

2) ¿Cómo se almacenan los hashes Blowfish?

echo $hash;
//Output: $2a$07$nGYCCmhrzjrgdcxjH$$.xLJMTJxaRa12DnhpAJmKQw.NXXZHgyq

2a) ¿Qué parte de esto debe almacenarse en la base de datos?
2b) ¿Qué tipo de datos debe usarse para la columna (MySQL)?

3) ¿Cómo se debe verificar un intento de inicio de sesión?

);

1a) ¿Cuál es el significado de "$ 2a"? ¿Simplemente indica que se debe usar el algoritmo Blowfish?
1b) ¿Cuál es el significado de "$ 07"? ¿Un valor más alto implica un hash más seguro?
1c) ¿Cuál es el significado de "$ nGYCCmhrzjrgdcxjH $3$quot;? ¿Es esta la sal que se utilizará? ¿Debería esto ser generado aleatoriamente? Codificado?

2) ¿Cómo se almacenan los hashes Blowfish?

echo $hash;
//Output: $2a$07$nGYCCmhrzjrgdcxjH$$$$.xLJMTJxaRa12DnhpAJmKQw.NXXZHgyq

2a) ¿Qué parte de esto debe almacenarse en la base de datos?
2b) ¿Qué tipo de datos debe usarse para la columna (MySQL)?

3) ¿Cómo se debe verificar un intento de inicio de sesión?

Respuestas a la pregunta(2)

Su respuesta a la pregunta