Se você estiver em um sistema Linux, consulte / proc / * / environ e decida se as variáveis de ambiente são um bom local para armazenar informações confidenciais ou não. / proc / self é o processo atual:
$ tr '$ tr '%pre%' '\n' < /proc/self/environ
USER=me
LOGNAME=me
HOME=/home/me
PATH=/usr/bin:/bin:/usr/sbin:/sbin
MAIL=/var/mail/me
SHELL=/usr/bin/sh
SSH_CLIENT=1.2.3.4 58195 22
SSH_CONNECTION=1.2.3.4 58195 7.8.9.0 22
SSH_TTY=/dev/pts/1
TERM=xterm
' '\n' < /proc/self/environ
USER=me
LOGNAME=me
HOME=/home/me
PATH=/usr/bin:/bin:/usr/sbin:/sbin
MAIL=/var/mail/me
SHELL=/usr/bin/sh
SSH_CLIENT=1.2.3.4 58195 22
SSH_CONNECTION=1.2.3.4 58195 7.8.9.0 22
SSH_TTY=/dev/pts/1
TERM=xterm
Não importa que a coisa que define a variável de ambiente provavelmente esteja lendo um arquivo em algum lugar.
A coisa a lembrar é que o uso de uma senha significa que a senha está disponível para o programa. Se essa senha não for fornecida por um usuário digitando-a sempre que um programa precisar dela, essa senha deverá estar acessível com base apenas no acesso do programa. Você pode criptografar a senha localmente e fazer o programa descriptografar usando uma chave, mas tudo o que isso faz é obscurecer a senha contra divulgação acidental; alguém que tenha o mesmo acesso que o programa pode fazer as mesmas coisas que o programa pode fazer, incluindo a leitura da chave de criptografia.
A maneira correta de fazer isso é fazer com que o aplicativo seja executado como uma conta restrita e armazenar a senha em um arquivo protegido com permissões no nível do sistema de arquivos. Espero que você possa "incluir" um arquivo ou similar, a fim de manter a senha fora de um sistema de controle de versão (supondo que o VCS não tem controles de segurança). Para proteger contra divulgação inadvertida, obscureça a senha como você quiser - base64 codifique-a, use o pgp para criptografar, o que fizer sentido no conjunto de opções do seu programa de servidor. Se você está escrevendo um programa para fazer isso, o melhor que você pode fazer é solicitar uma senha ao usuário somente quando necessário e, em seguida, limpar a senha da memória assim que for usada.