Estoy creando una aplicación SaaS en PHP que involucrará a los usuarios que almacenan los nombres y direcciones de sus clientes en nuestra base de datos. Tengo la intención de cifrar los datos utilizando la biblioteca defuse / php-encryption que permite a los usuarios individuales tener su propia clave de cifrado protegida por su contraseña de inicio de sesión. Mi pregunta es, si hago esto, ¿cómo administro el caso donde el usuario ha olvidado su contraseña? Si se olvida su contraseña, la clave se pierde posteriormente y no tengo forma de recuperarla. Pensé que sería capaz de almacenar la clave dos veces, una protegida con la contraseña del usuario y la segunda protegida con una contraseña de administrador segura, con el usuario que tiene que llamar para restablecer su cuenta. Sin embargo, por lo que puedo ver, la biblioteca de cifrado de php no permite esto.
Me gustaría evitar tener una clave global, ya que tendría que almacenarse en algún lugar del código fuente o db.