Sto sviluppando un server (Java + Spring) e voglio crittografare i dati sensibili degli utenti sul database, usando una chiave specifica per ognuno.
Ho pensato di crittografare i dati dell'utente usando la loro password come base per la chiave ma ...
- Sto solo memorizzando le password hash (bcrypt) nel database
- L'utente invia la password al server solo durante la creazione del proprio account e l'accesso. Per l'autenticazione della richiesta viene utilizzato JWT (contenente solo l'ID utente, con un segreto strong e una bassa scadenza) generato dopo ogni accesso.
Ho pensato di archiviare la password come testo normale nel database ma questo mi porta allo stesso problema, se il db viene compromesso, un utente malintenzionato potrebbe facilmente decifrare il contenuto dell'utente.
C'è un modo per farlo?