PGP ha un metodo per gestirlo che (nel tuo caso) andrebbe qualcosa del tipo:
Per proteggere i dati:
- L'applicazione conosce la chiave pubblica dell'utente (Ku)
- L'applicazione genera "Hello world."
- L'applicazione genera una buona chiave di crittografia simmetrica (Ks)
- L'applicazione utilizza Ks per crittografare "Hello world."
- L'applicazione crea una copia di K che è crittografata con Ku
- L'applicazione crea una copia di Ks crittografata con la chiave pubblica dell'applicazione (Ka)
- L'applicazione memorizza la stringa crittografata e entrambe le password crittografate
Per recuperare i dati:
- L'applicazione fornisce la copia di Ks crittografata con Ku
- L'utente lo decripta usando la sua chiave privata
- L'applicazione utilizza K decrittografato per decrittografare i dati e visualizzarli per l'utente.
Poiché esiste una copia di K crittografata con Ka, l'applicazione può decrittografare i dati senza l'utente finché è disponibile la chiave privata dell'applicazione.
EDIT:
Poiché @CBHacking indicato nei commenti, è altamente si consiglia di trovare un sistema crittografico già collaudato che soddisfi le proprie esigenze. Roll-your-own crypto è un modo semplice per fare errori imbarazzanti. Parlando come qualcuno che ha implementato il primo archivio di password non in chiaro nella mia azienda, ci sono un sacco di opzioni create da persone che capiscono questo materiale molto meglio di noi.