/ / Szyfruj hasła w pliku config.properties - linux, bash, shell, centos, szyfrowanie hasłem

Szyfruj hasła w pliku config.properties - linux, bash, shell, centos, password-encryption

Używam wielu skryptów powłoki, które używająwłaściwości w pliku config.properties .. ma szczegóły połączenia z bazą danych, hasła ... itd., Chcę tylko zaszyfrować hasła .. aby ktoś, kto patrzy na plik właściwości, nie mógł z niego korzystać. Również nie chcę zmieniać uprawnień do pliku, chcę tylko szyfrować hasła

Wiem, że jest kilka sposobów .. jak używanie Java lub użycie dowolnego algorytmu szyfrowania, ale nie chcę używać Java.

Używam skryptów powłoki na przykładowych skryptach CentOS .. wygląda jak poniżej ..

config.properties

    DatabaseHostName=test_host
DatabasePort=4898
DatabaseUserName=test_user
# MY DB Password here is visible.. I want to encrypt this
DatabasePassword=password123

script.sh

    #sourcing the above properties file here
source ./config.properties
export PGPASSWORD=${DatabasePassword}
psql -h ${DatabaseHostName} -p ${DatabasePort} ${DatabaseUserName} -c "select * from table_name;"

moje oba pliki znajdują się w tym samym folderze

Odpowiedzi:

1 dla odpowiedzi № 1

Oto problem, bez względu na to, jakie szyfrowanie wstawisz do pliku, musisz mieć możliwość cofnięcia się w skrypcie. Więc każdy, kto widzi skrypt, może dowiedzieć się, jak dekodować hasła.


0 dla odpowiedzi nr 2

polecenie szyfrowanie:

echo "hoge" | openssl rsautl -encrypt -inkey ~/.ssh/id_rsa > pass.rsa

polecenie deszyfruj:

openssl rsautl -decrypt -inkey /root/.ssh/id_rsa -in pass.rsa

config modyfikuj:

DatabasePassword=S03EXE -> DatabasePassword=$(openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in pass.rsa)