Linux 加密config.properties文件中的密码

Linux 加密config.properties文件中的密码,linux,bash,shell,centos,password-encryption,Linux,Bash,Shell,Centos,Password Encryption,我正在运行一组shell脚本,它们使用config.properties文件中的属性。。它包含数据库连接详细信息、密码。。等 我只想加密密码。。因此,当有人查看属性文件时,他们应该不能使用它。 另外,我不想更改文件的权限,我只想加密密码 我知道没有什么办法。。就像使用java或任何加密算法,但我不想使用java 我正在CentOS上运行shell脚本。。示例脚本如下所示 config.properties script.sh 我的两个文件都在同一个文件夹下问题在于,无论您在文件中添加了什么加密,

我正在运行一组shell脚本,它们使用config.properties文件中的属性。。它包含数据库连接详细信息、密码。。等 我只想加密密码。。因此,当有人查看属性文件时,他们应该不能使用它。 另外,我不想更改文件的权限,我只想加密密码

我知道没有什么办法。。就像使用java或任何加密算法,但我不想使用java

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

config.properties script.sh
我的两个文件都在同一个文件夹下

问题在于,无论您在文件中添加了什么加密,您都需要能够在脚本中反转。因此,任何能看到脚本的人都可以了解如何解码密码。

命令加密:

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)

这将帮助你找到一个好的方向。如何保护加密密钥?最好的办法是通过将文件的读取权限设置为“仅所有者”,确保只有运行数据库的用户才能查看该文件。
openssl rsautl -decrypt -inkey /root/.ssh/id_rsa -in pass.rsa
DatabasePassword=S03EXE -> DatabasePassword=$(openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in pass.rsa)