Várias idéias ... A criptografia de chave pública é a resposta mais flexível.
Ofuscação (apenas para código)
Para as partes do código que você deseja ocultar, você pode colocá-las em um projeto diferente, compilá-las e fazer check-in apenas do código compilado, não da fonte? Isso não é criptografia e não é adequado para criptografar senhas ou chaves. As pessoas ainda podem fazer engenharia reversa do seu código compilado, mas não obtêm a fonte.
Repositório GIT privado
Ele precisa ser um repositório público git?
Armazenamento do servidor
Você pode armazenar essas informações em um arquivo protegido no diretório inicial da conta de usuário sob a qual o aplicativo é executado? Eu copiaria a maneira como o ssh faz isso com ~ / .ssh / id_rsa e um chmod de 600. Falhando nisso, uma variável de ambiente poderia ser usada. Você precisa de algum lugar no servidor para armazenar algum tipo de chave ou não há como proteger alguma coisa.
Criptografia simétrica (apenas para você)
Se você for o único desenvolvedor, poderá colocar uma chave no servidor e ter a mesma chave em sua máquina e usar um esquema de criptografia simétrica para proteger alguns dados, como senha ou certificado. Compartilhar uma chave simétrica com os amigos fica confuso.
Criptografia assimétrica (para vários desenvolvedores)
Se outros desenvolvedores precisarem verificar coisas secretas em um repositório público git, foi criada uma criptografia de chave pública / chave privada (assimétrica) para esse tipo de coisa. Instale uma chave privada no seu servidor (não a verifique no controle de origem!) E gere uma chave pública a partir dela. Criptografe seus dados secretos usando a chave pública do servidor. Somente o servidor pode descriptografar esses dados usando sua chave privada. Você pode até verificar a chave pública no controle de origem para que outras pessoas possam criptografar dados usando a mesma chave pública e apenas o servidor possa descriptografá-los.
Ferramenta
O Openssl é provavelmente a única ferramenta de criptografia que você precisará. Não escreva seu próprio algoritmo de criptografia ou sua própria implementação de um algoritmo publicado.
Pensamentos finais
Se o "servidor" for um servidor Web que use https, você já deve ter algum tipo de armazenamento de chaves seguro no servidor para armazenar a chave privada. esta. Talvez eles tenham algumas dicas de como os outros resolvem o desafio que você está enfrentando?