我正在运行一堆shell脚本,它们使用config.properties文件中的属性..它有数据库连接细节,密码..等等, 我只想加密密码..这样当有人查看属性文件时,他们就不能使用它。 此外,我不想更改文件的权限,我只想要加密密码
我知道有几种方法......比如使用java或使用任何加密算法,但我不想使用java。
我在CentOS上运行shell脚本..示例脚本如下所示..
DatabaseHostName=test_host
DatabasePort=4898
DatabaseUserName=test_user
# MY DB Password here is visible.. I want to encrypt this
DatabasePassword=password123
#sourcing the above properties file here
source ./config.properties
export PGPASSWORD=${DatabasePassword}
psql -h ${DatabaseHostName} -p ${DatabasePort} ${DatabaseUserName} -c "select * from table_name;"
我的两个文件都在同一个文件夹下
答案 0 :(得分:1)
问题在于,无论您在文件中加密了什么,您都需要能够在脚本中进行反转。所以任何能够看到脚本的人都可以弄清楚如何解码密码。
答案 1 :(得分:0)
命令加密:
echo 'hoge' | openssl rsautl -encrypt -inkey ~/.ssh/id_rsa > pass.rsa
命令解密:
openssl rsautl -decrypt -inkey /root/.ssh/id_rsa -in pass.rsa
配置修改:
DatabasePassword=S03EXE -> DatabasePassword=$(openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in pass.rsa)