Diverse idee ... La crittografia a chiave pubblica è la risposta più flessibile.
Obfuscation (solo per il codice)
Per le parti del codice che vuoi nascondere, potresti metterle in un progetto diverso, compilarle e controllare solo il codice compilato, non la fonte? Questa è la non crittografia e non adatta alla crittografia di password o chiavi. Le persone possono ancora decodificare il codice compilato, ma non ottengono la fonte.
Deposito GIT privato
Deve essere un repository git pubblico ?
Archiviazione server
È possibile memorizzare queste informazioni in un file protetto nella directory home dell'account utente in cui viene eseguita l'applicazione? Vorrei copiare il modo in cui ssh fa questo con ~ / .ssh / id_rsa e un chmod di 600. In caso contrario, potrebbe essere usata una variabile d'ambiente. È necessario da qualche parte sul server per memorizzare qualche tipo di chiave, o non c'è modo di proteggere nulla.
Crittografia simmetrica (solo per te)
Se sei l'unico sviluppatore, puoi inserire una chiave sul server e avere la stessa chiave sul tuo computer e utilizzare uno schema di crittografia simmetrica per proteggere alcuni dati come una password o un certificato. Condividere una chiave simmetrica con gli amici diventa complicato.
Crittografia asimmetrica (per più sviluppatori)
Se altri sviluppatori hanno bisogno di controllare cose segrete in un repository git pubblico, la crittografia a chiave pubblica / privata (asimmetrica) è stata creata per questo genere di cose. Installa una chiave privata sul tuo server (non controllarla nel controllo del codice sorgente!) E genera una chiave pubblica da esso. Cripta i tuoi dati segreti usando la chiave pubblica del server. Solo il server può decodificare i dati utilizzando la sua chiave privata. Puoi persino controllare la chiave pubblica nel controllo del codice sorgente in modo che altre persone possano crittografare i dati utilizzando la stessa chiave pubblica e solo il server può decodificarli.
Strumento
Openssl è probabilmente l'unico strumento di crittografia di cui avrai mai bisogno. Non scrivere il tuo algoritmo di crittografia o la tua implementazione di un algoritmo pubblicato.
Pensieri di chiusura
Se il "server" è un server web che utilizza https, allora dovresti già avere un keystore sicuro di qualche tipo sul server per memorizzare la chiave privata. È una specie di strabiliante che una società di hosting non prendere indennità per questo. Forse hanno qualche suggerimento su come gli altri risolvono la sfida che stai affrontando?