Tengo un sistema con unos pocos miles de cuentas de usuario que necesito migrar a una nueva plataforma. El sistema almacena una contraseña cifrada, no cifrada o (gracias a Dios) texto sin formato. Además, no tengo los detalles del hashing fácilmente disponibles.
¿Cuáles son algunas formas efectivas de hacer la transición? Me viene a la mente una idea:
Pasé por un problema similar recientemente, excepto que no tenía acceso al algoritmo hash que se estaba utilizando. Creo que tienes 2 opciones.
Sin embargo, si descubre que no tiene acceso al algoritmo hash y tiene la dirección de correo electrónico de cada usuario, tiene otra opción. Esto es lo que hice en realidad:
La segunda opción funcionó bastante bien para mí. Prácticamente no tuve quejas de los usuarios y es relativamente seguro, ya que ese es el proceso normal para que un usuario restablezca su contraseña olvidada.
Antes de pasar por demasiados problemas, ¿has investigado cuál podría ser el algoritmo hash? Si eran lo suficientemente cuerdos como para usar contraseñas hash, es de esperar que fueran lo suficientemente cuerdos como para usar un algoritmo hash común (MD5, SHA1, etc.).
Puede valer la pena probar algunas opciones comunes para ver si puede realizar ingeniería inversa de lo que estaban haciendo.
Además, mencionas "extraer algo del código que actualmente realiza la autenticación". ¿Cómo es que tienes el código, pero no el algoritmo hash?