在日常的 Linux 系统管理和自动化任务中,我们经常使用 Shell 脚本 来提高效率。但有时,脚本中可能包含敏感信息,比如密码、API 密钥等。为了保护这些数据,我们可以借助简单的 加密与解密函数 来增强脚本的安全性。
本文将手把手教你如何在 Linux Shell 脚本中编写自己的加密和解密函数,即使你是编程新手,也能轻松上手!

虽然 Shell 脚本本质上是明文存储的,无法做到像编译型语言那样完全隐藏逻辑,但我们可以通过对关键数据进行加密,防止他人直接看到敏感内容。例如:
通过使用 Linux Shell函数 实现简单的加解密机制,可以在运行时动态还原敏感信息,提升脚本安全性。
严格来说,Base64 不是加密,而是一种编码方式,但它常被用于简单的“混淆”处理。对于非高安全场景,Base64 已经足够“隐藏”肉眼可读的内容。
在终端中尝试以下命令:
echo "mysecretpassword" | base64# 输出:bXlzZWNyZXRwYXNzd29yZAo=echo "bXlzZWNyZXRwYXNzd29yZAo=" | base64 -d# 输出:mysecretpassword下面我们创建一个完整的 Shell 脚本,其中包含两个函数:encrypt() 和 decrypt(),它们基于 Base64 实现。
#!/bin/bash# 加密函数:将明文转换为 Base64encrypt() { local plaintext="$1" echo -n "$plaintext" | base64}# 解密函数:将 Base64 还原为明文decrypt() { local encoded_text="$1" echo -n "$encoded_text" | base64 -d}# 示例使用SECRET="MySuperSecret123!"ENCRYPTED=$(encrypt "$SECRET")DECRYPTED=$(decrypt "$ENCRYPTED")echo "原始密码: $SECRET"echo "加密后: $ENCRYPTED"echo "解密后: $DECRYPTED"保存为 crypto.sh,然后赋予执行权限并运行:
chmod +x crypto.sh./crypto.shBase64 容易被反向破解,因此我们可以结合一个“密钥”进行异或(XOR)操作,实现更安全的轻量级加密。虽然这不是军用级加密,但对于大多数脚本场景已足够。
#!/bin/bashKEY="MySecretKey2024" # 加密密钥xor_encrypt() { local input="$1" local key="$KEY" local result="" local key_len=${#key} local input_len=${#input} for (( i=0; i⚠️ 注意:这种 XOR + Base64 的方法仍属于“轻量级混淆”,不适用于高安全要求场景。如需更强安全性,请考虑使用 GPG 或 OpenSSL。
你可以将加密后的字符串硬编码到脚本中,在运行时动态解密:
# 脚本中只保留加密后的字符串DB_PASSWORD_ENCRYPTED="WmF6em...(你的加密串)"# 运行时解密DB_PASSWORD=$(decrypt "$DB_PASSWORD_ENCRYPTED")# 使用密码连接数据库mysql -u user -p"$DB_PASSWORD" mydb这样,即使别人看到你的脚本,也无法直接获取原始密码,提升了 Shell脚本加密 和 Shell脚本解密 的实用性。
通过本文,你学会了:
记住,没有绝对的安全,但合理的 Shell安全编程 习惯能大大降低风险。希望这篇教程对你有帮助!
本文由主机测评网于2025-11-27发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511944.html