¿Es más seguro que:
a) Toma una contraseña, sácala, luego córtala.
b) Tomar una contraseña, codificarla y luego cifrarla (usando un algoritmo simétrico con una clave grande)
Le daré efectivamente la misma respuesta que recibió en crypto.SE cuando hizo esta pregunta allí , pero con un poco más de explicación.
Las contraseñas deben ser saladas y hash. Período. Ahora, si quieres encriptarlos después de salatarlos y picarlos, hazlo. Si no saca sus hashes antes del cifrado, corre el riesgo de que a) los hashes cifrados resultantes sean idénticos para las contraseñas idénticas (en el peor de los casos) o utilicen un IV exclusivo para cada contraseña cifrada que sea exactamente el mismo trabajo que usar un salt, pero tiene el problema adicional de no proporcionar ninguna protección para sus hashes sin sal si su cifrado se rompe y los hashes en bruto están expuestos. Este problema es la razón por la cual las contraseñas hash en lugar de cifrarlas en primer lugar.
Entonces, la conclusión es, sal y hash. Y hash con una función de hash buena y lenta como bcrypt.
El único beneficio potencial de cifrar vs sal + hash, es que es reversible. Si su cliente insiste en poder recuperar las contraseñas existentes, entonces lo que necesita es cifrado. Si no necesita recuperar el valor existente, el cifrado es menos seguro y supone una pérdida de tiempo de CPU.
Lea otras preguntas en las etiquetas hash salt encryption