Bash 解密base64并保存在第二个变量中

Bash 解密base64并保存在第二个变量中,bash,shell,encryption,base64,Bash,Shell,Encryption,Base64,我正在尝试写一个密码安全系统。(只是一个学习bash脚本的小家庭系统)我能够加密密码字符串并将其保存到另一个文件中 我的下一步是在shell脚本中导出这些加密的密码字符串,并对它们进行解密,以便在此例程中使用它们。我用简单的导出命令找到了一个导出解决方案,并最终将加密字符串保存到新变量中 如何解密这些字符串并将其保存在另一个变量中。我使用的是openssl和base64加密 这是源代码: export user=$(cat logindata | head -n1 | tail -n1) exp

我正在尝试写一个密码安全系统。(只是一个学习bash脚本的小家庭系统)我能够加密密码字符串并将其保存到另一个文件中

我的下一步是在shell脚本中导出这些加密的密码字符串,并对它们进行解密,以便在此例程中使用它们。我用简单的导出命令找到了一个导出解决方案,并最终将加密字符串保存到新变量中

如何解密这些字符串并将其保存在另一个变量中。我使用的是openssl和base64加密

这是源代码:

export user=$(cat logindata | head -n1 | tail -n1)
export passwd=$(cat logindata | head -n2 | tail -n1)
passwd2=echo -n $passwd | openssl enc -d -base64
echo "$user"
echo "$passwd2"

该脚本将给出以下概念:

#!/bin/sh

username='my_username'
password='my_password'

username_encoded=$(echo -n "$username" | openssl enc -base64)
password_encoded=$(echo -n "$password" | openssl enc -base64)

username_decoded=$(echo "$username_encoded" | openssl enc -d -base64)
password_decoded=$(echo "$password_encoded" | openssl enc -d -base64)

echo "username: $username"
echo "username_encoded: $username_encoded"
echo "username_decoded: $username_decoded"
echo "password: $password"
echo "password_encoded: $password_encoded"
echo "password_decoded: $password_decoded"
输出:

username: my_username
username_encoded: bXlfdXNlcm5hbWU=
username_decoded: my_username
password: my_password
password_encoded: bXlfcGFzc3dvcmQ=
password_decoded: my_password

请注意,在解码时,您需要在结尾发送一个换行符,这就是为什么我没有将
-n
与echo一起使用。

此脚本将给出以下概念:

#!/bin/sh

username='my_username'
password='my_password'

username_encoded=$(echo -n "$username" | openssl enc -base64)
password_encoded=$(echo -n "$password" | openssl enc -base64)

username_decoded=$(echo "$username_encoded" | openssl enc -d -base64)
password_decoded=$(echo "$password_encoded" | openssl enc -d -base64)

echo "username: $username"
echo "username_encoded: $username_encoded"
echo "username_decoded: $username_decoded"
echo "password: $password"
echo "password_encoded: $password_encoded"
echo "password_decoded: $password_decoded"
输出:

username: my_username
username_encoded: bXlfdXNlcm5hbWU=
username_decoded: my_username
password: my_password
password_encoded: bXlfcGFzc3dvcmQ=
password_decoded: my_password

请注意,在解码时,您需要在结尾发送一个换行符,这就是为什么我没有将
-n
与echo一起使用。

阅读此内容的人应该知道base64实际上不是一种二进制到文本编码。阅读此内容的人应该知道base64实际上不是一种二进制到文本编码。