Come potrei implementare al meglio una funzionalità di reimpostazione della password per un gestore di password? Al momento sto salvando una password master hash + + salata, che è stata sottoposta a hash con PBKDF2 e crittografando le password con la password principale stessa, tuttavia se un utente ha perso la sua password principale significa che le password non possono essere decodificate.
Ho pensato di salvare una versione delle password crittografate con la password principale e una versione crittografata con l'email degli utenti + un token casuale generato quando l'utente crea il suo account, ma sarebbe sicuro? C'è qualche pratica migliore quando si fa questo?
Anche l'email dell'utente viene memorizzata come hash.
Quindi, per chiarire la mia domanda, ci sono delle best practice per il recupero dei dati crittografati con una password se quella password è persa?
Modifica
La mia idea attuale è generare una seconda chiave per crittografare tutte le password e crittografare questa chiave in un'immagine attraverso la steganografia che l'utente può memorizzare su un usb, ma tutte le password verranno salvate due volte nel database (crittografate entrambe le volte), quindi non so se questo è un rischio o meno.
EDIT 2
Versione finale, con l'aiuto della risposta di @ A.Hersean.
Creerò una chiave con cui tutte le password sono crittografate e questa chiave può essere crittografata con una password e una password di backup (che viene salvata all'interno di un'immagine) e quelle due crittografie della chiave verranno quindi salvate al database.