La idoneidad de blowfish como cifrado y bcrypt como hash de contraseña no está relacionada en su mayoría. Hay muchos mejores reemplazos para blowfish, pero no tanto para bcrypt.
Blowfish está mayormente desanimado porque tiene un mejor reemplazo en AES, no porque esté roto. AES ha visto mucho análisis, durante y después de la competencia. Otro problema de Blowfish es su tamaño de bloque de 64 bits, lo que lleva a límites relativamente pequeños sobre la cantidad de datos que se pueden cifrar con una clave, mientras que AES utiliza bloques de 128 bits y, por lo tanto, puede manejar grandes cantidades de datos de manera segura. También tiene algunas propiedades molestas, como una configuración de teclas lenta y un uso de memoria relativamente alto.
PBKDF2-HMAC-SHA-1/2/3 es significativamente más débil que bcrypt, por lo que solo lo elegiría si necesita un cumplimiento estándar o si su idioma solo lo envía pero no es bcrypt de forma predeterminada. Los hashes subyacentes pueden ser seguros, pero eso no lo convierte en un buen hash de contraseña.
Como reemplazo moderno de bcrypt, el único candidato actualmente viable es scrypt. Ofrece seguridad mejorada, pero es relativamente nuevo, no es muy popular y no se ha visto mucho análisis. Tampoco se ha incluido en muchas bibliotecas estándar. Así que los criptógrafos más conservadores preferirán bcrypt sobre scrypt.
Una competencia para encontrar un nuevo hash de contraseña resultó en algunas alternativas interesantes, como su ganador Argon. Pero no los considero adecuados para la producción por otros cinco años más o menos. Quizás en 2020 tengamos una opinión similar de bcrypt como la de Blowfish ahora, pero todavía no estamos allí. Por ahora, bcrypt es una buena opción si eres conservador, o scrypt si eres progresivo.