Tengo un sitio web y en ese sitio uso SHA-256 y elimino las contraseñas de mis usuarios. Lo que estoy haciendo en este momento es rellenar cada letra de la contraseña del usuario con datos de la papelera antes de escribirla. La razón por la que hago esto es que si alguien obtiene un volcado de la base de datos de mi sitio (es poco probable, pero posible), los forzadores brutos / herramientas de ataque de diccionario como John el destripador no funcionarán porque la contraseña con hash no es realmente una palabra de su listas de palabras, pero una versión desordenada.
¿Es esta una estrategia viable o hay otra forma de prevenir los ataques de diccionario? Algunos usuarios han informado problemas con sus contraseñas, que pueden estar o no relacionados con mi método de "pre-hashing", pero me interesó buscar alternativas para las contraseñas de hashing. No puedo usar blowfish con ningún número seguro de rondas debido a la necesidad de que los hash de contraseña calculen en un tiempo razonable.
¿Hay implementaciones de PHP de ese nuevo algoritmo de hashing Keccak SHA3 o sería una mala idea usarlo?