Salar mis hashes con PHP y MySQL

Como la mayoría de los usuarios, simplemente estoy tratando de encontrar una forma segura de almacenar contraseñas. Lo que no he encontrado aquí (o tal vez es mi falta de comprensión) es cómo recuperar un hash salado en mi base de datos y separar la sal de la contraseña hash,especialmente con sales únicas para cada contraseña mientras se mantiene la contraseña salt + en una sola columna.

Estoy encontrando todas estas formas geniales de cifrar las contraseñas (SHA-256, pero ¿MySQL solo es compatible con SHA / 1 y MD5?) Y otras cosas del manual de PHP, pero no estoy seguro de cómo almacenar y recuperar las contraseñas.

Entonces, hasta ahora esto es todo lo que entiendo:

SHA('$salt'.'$password') // My query sends the password and salt 
                         // (Should the $salt be a hash itself?)

Después de eso estoy perdido con sales.

Recuperar la contraseña sin una sal es fácil, pero la sal me confunde. ¿Dónde obtengo el valor de $ salt nuevamente, especialmente si es único y seguro? ¿Los oculto en otra base de datos? ¿Constante (parece inseguro)?

EDITAR: ¿Se supone que la variable clave en HMAC es sal o es algo más?

Respuestas a la pregunta(3)

Su respuesta a la pregunta