加密config.properties文件中的密码

时间:2016-03-25 15:23:19

标签: linux bash shell centos password-encryption

我正在运行一堆shell脚本,它们使用config.properties文件中的属性..它有数据库连接细节,密码..等等, 我只想加密密码..这样当有人查看属性文件时,他们就不能使用它。 此外,我不想更改文件的权限,我只想要加密密码

我知道有几种方法......比如使用java或使用任何加密算法,但我不想使用java。

我在CentOS上运行shell脚本..示例脚本如下所示..

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;"

我的两个文件都在同一个文件夹下

2 个答案:

答案 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)