我正在尝试编写密码安全系统。 (只是一个小型的家庭系统来学习一些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"
答案 0 :(得分:3)
这个脚本会给出这个概念:
#!/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结合使用的原因。