Il database della mia app web memorizza i dati sensibili. Un utente malintenzionato non dovrebbe avere accesso a questi dati se ottiene l'accesso al database. Ecco perché voglio crittografare questi dati sensibili nel database.
Per prima cosa volevo crittografare i dati degli utenti con il nome utente o la password dell'utente come chiave. Il problema con questo approccio è che l'utente è in grado di cambiare nome utente e password. Nel caso in cui l'utente cambi il suo nome utente, l'applicazione non può più decodificare i dati che sono stati crittografati con il suo vecchio nome utente. Inoltre, l'autore dell'attacco ha accesso al nome utente dell'utente. Quindi questa non sarebbe una soluzione molto sicura.
L'unica altra idea che ho è quella di criptare tutti i dati utente con una chiave globale. Uno svantaggio di questo è che l'intero sistema si basa su una chiave. In questo scenario non sono in grado di modificare la chiave a causa dell'incompatibilità della nuova chiave e dei vecchi dati.
Hai qualche idea migliore su questo problema?