Ho un'applicazione web con molti dati db memorizzati, alcuni dei quali sono criptati. I dati sono crittografati con una chiave surrogata, che a sua volta è crittografata con un hash di una password utente.
Su richiesta dell'utente, possono richiedere un'esportazione di una grande quantità di dati. Una richiesta viene aggiunta a una coda che viene elaborata in ordine sequenziale con le richieste di altre persone. Le informazioni sulla richiesta sono memorizzate nel db. Ogni richiesta è troppo grande per essere eseguita in un'unica esecuzione, quindi sono suddivise in molte parti più piccole nel tempo. La richiesta di un utente non può iniziare per un'ora a seconda delle dimensioni della coda e potrebbe richiedere fino a 15 minuti per la compilazione.
Il problema è che ho bisogno di decifrare i campi criptati e includerli nell'output ... Così, mentre potrei chiedere all'utente la password al momento della richiesta, come può il sistema conservare la password, o la chiave surrogata per utilizzare in seguito senza registrarlo da qualche parte? Non è del tutto sicuro memorizzare la chiave surrogata nel db insieme alle informazioni sulla richiesta (anche solo temporaneamente) ... e memorizzarla in una sessione non funzionerà perché la sessione dell'utente non è ciò che esegue lo script di compilazione ...
Qualche idea geniale su come ciò può essere realizzato?