La respuesta corta es, usa bcrypt, no SHA256. Bcrypt ya tiene la contraseña, por lo que si está usando bcrypt, no tiene sentido usar ambos bcrypt + SHA256; No será más fuerte. Bcrypt solo es suficiente.
Hay muchos consejos en este sitio sobre este tema. Busque "hashing de contraseñas" y lo encontrará.
Vea, por ejemplo, ¿Cómo hacer hash de forma segura las contraseñas? , ¿Qué método de hash de contraseña debo usar? , ¿La mayoría de los algoritmos (s) hash de contraseña segura? , ¿Los expertos en seguridad recomiendan? bcrypt para el almacenamiento de contraseñas? .
Desea utilizar un algoritmo de hashing de contraseñas tan lento como pueda soportar, para evitar ataques de diccionario sin conexión en las contraseñas de las personas si su base de datos está en peligro.
Por supuesto, eso no es suficiente. Hay una variedad de pasos que debe tomar para hacer que las contraseñas sean lo más seguras posible. Aquí hay algunos:
-
Use SSL / TLS en todo el sitio. Cualquier intento de visitar su sitio a través de HTTP debe redirigirse inmediatamente a HTTPS.
-
Habilite HSTS en tu sitio. Esto le dice a los navegadores que solo se conecten a usted a través de HTTPS. Paypal lo usa. Es compatible con las versiones recientes de Firefox y Chrome.
Busca en el sitio y encontrarás mucho más.