如何加密和解密shell中的字符串/文本(linux环境)

时间:2015-11-15 09:03:57

标签: linux

我有一个字符串,实际上是密码。我想加密字符串,并希望将加密结果存储在参数文件中。接下来在执行脚本期间,将拾取加密字符串并在运行时解密。所以我想知道如何在linux环境中加密和解密字符串/文本?

3 个答案:

答案 0 :(得分:0)

您可以使用“ base64”命令来加密和解密字符串 例如

$ echo "mypassword" |base64 > env.conf

对于提取,您可以执行以下操作

$ MyPass=`cat $PRG_HOME/env.conf | base64 --decode`

希望这会有所帮助

答案 1 :(得分:0)

openssl可以做得更好。

编码:

$ secret=$(echo "this is a secret." | openssl enc -e -des3 -base64 -pass pass:mypasswd -pbkdf2)

解码:

$ echo "${secret}" | openssl enc -d -des3 -base64 -pass pass:mypasswd -pbkdf2

提示:

  • 您可以根据提示删除arg -pass和输入密码。

答案 2 :(得分:0)

这不是这里所要求的,但是它显示了一种简单的方法,无需输入密码提示

encode.sh

#!/usr/bin/env bash

echo $1 | openssl aes-256-cbc -a -salt -pass pass:somepassword

decode.sh

#!/usr/bin/env bash

echo $1 | openssl aes-256-cbc -d -a -pass pass:somepassword

使文件可执行

chmod +x encode.sh decode.sh

编码示例

./encode.sh "this is my test string"
# => U2FsdGVkX18fjSHGEzTXU08q+GG2I4xrV+GGtfDLg+T3vxpllUc/IHnRWLgoUl9q

解码示例

./decode.sh U2FsdGVkX18fjSHGEzTXU08q+GG2I4xrV+GGtfDLg+T3vxpllUc/IHnRWLgoUl9q
# => this is my test string