在Shell脚本中实现简单的加密解密工具,可以使用内置的tr命令。tr命令用于将一组字符替换为另一组字符。这允许我们创建一个基于凯撒密码(Caesar cipher)的加密和解密工具。以下是一个示例:
- 创建加密脚本:
- 创建一个新的文件(如
encrypt.sh
),并将以下代码粘贴到其中:
- 创建一个新的文件(如
#!/bin/bash
# 获取用户输入的文本和偏移量
echo "请输入要加密的文本:"
read text
echo "请输入偏移量(1-25):"
read offset
# 使用tr命令进行加密
encrypted=$(echo "$text" | tr 'a-zA-Z' $(echo {
a..z} {
A..Z} | tr ' ' '\n' | sed "${offset}q;d"))
# 显示加密后的结果
echo "加密后的文本: $encrypted"
- 创建解密脚本:
- 创建一个新的文件(如
decrypt.sh
),并将以下代码粘贴到其中:
- 创建一个新的文件(如
#!/bin/bash
# 获取用户输入的加密文本和偏移量
echo "请输入要解密的文本:"
read encrypted_text
echo "请输入偏移量(1-25):"
read offset
# 计算解密所需的负偏移量
dec_offset=$(( 26 - offset ))
# 使用tr命令进行解密
decrypted=$(echo "$encrypted_text" | tr 'a-zA-Z' $(echo {
a..z} {
A..Z} | tr ' ' '\n' | sed "$dec_offset q;d"))
# 显示解密后的结果
echo "解密后的文本: $decrypted"
- 赋予执行权限并运行脚本:
- 给每个脚本文件赋予执行权限:
chmod +x encrypt.sh decrypt.sh
- 运行加密脚本:
./encrypt.sh
- 运行解密脚本:
./decrypt.sh
- 给每个脚本文件赋予执行权限:
这些脚本使用了凯撒密码的基本原理,即将字母表中的每个字母向后或向前移动指定数量的位置。加密时,偏移量是正数;解密时,偏移量是负数。
注意:这个加密方法非常简单,不适用于需要高安全性的情况。