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 № 1Oto 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)