Debido a que la contraseña de hash se ha convertido en un tema candente recientemente, es natural esperar que las cosas cambien y supongamos que en algún momento es posible que desee reemplazar / modificar el algoritmo utilizado en su sistema. Eso naturalmente resultaría en diferentes tipos de hashes almacenados para usuarios antiguos y nuevos.
Me pregunto si sería aceptable si simplemente almacenara el algoritmo utilizado en la base de datos ante cada hash. Algo similar a cómo se ve la salida de bcrypt: $2a$...
(la versión del algoritmo). ¿Qué pasa si lo almacené por nombre como sha1$f6238eb6ca...
?
¿Empeora considerablemente el hecho de exponer explícitamente el algoritmo utilizado? Estoy pensando que, incluso si el atacante conoce el algoritmo exacto (de muy pocos) es más o menos el mismo orden de trabajo descifrarlo, x1 o x5 no es un gran problema, el mismo O (esfuerzo). Pero me facilita la gestión de las cosas.
¿Qué piensan los expertos?
Actualizar. Estaba pensando en otra opción, como referirme a un algoritmo en particular mediante códigos como alg1, alg2 y escribir las explicaciones de esas referencias en algún otro lugar, en la aplicación, tal vez, para mantener esta información a mano. Si mi idea original resultara mala, ¿este enfoque la corregiría?