📜  使用 Shell 脚本在目录中自动递归加密(1)

📅  最后修改于: 2023-12-03 14:49:46.718000             🧑  作者: Mango

使用 Shell 脚本在目录中自动递归加密

随着互联网的普及,个人数据安全问题越来越受到关注。对于程序员来说,对自己的代码或者个人资料进行加密处理是一项必要的安全措施。本文将介绍如何使用 Shell 脚本在目录中自动递归加密。

1. 使用 gpg 工具进行加密

加密处理可以使用 gpg 工具,gpg (Gnu Privacy Guard) 是一个用于数据加密和签名的自由软件。我们可以使用它来加密需要保护的数据,只需要掌握一些基本的命令即可。

1.1 安装 gpg 工具

在 Linux 系统中,gpg 工具通常已经默认安装,如果未安装,可以使用以下命令进行安装:

# Ubuntu
sudo apt-get install gnupg2

# RedHat/CentOS
sudo yum install gnupg2
1.2 生成 gpg 密钥

在使用 gpg 工具之前,我们需要先生成一对密钥,包括公钥和私钥。公钥用于加密,私钥用于解密。在生成密钥对的过程中,需要输入一些个人信息,如姓名和电子邮件地址,这些信息将用于生成公钥。

gpg --gen-key
1.3 加密文件

使用以下命令加密文件:

gpg -e -r "收件人邮箱" "需要加密的文件路径"

其中,-r 参数用于指定收件人的公钥,-e 参数用于加密,加密后的文件会生成一个 .gpg 的后缀名。

1.4 解密文件

使用以下命令解密文件:

gpg -d "加密后的文件路径"
2. 使用 Shell 脚本批量加密

手动加密所有需要保护的文件非常麻烦,这时可以使用 Shell 脚本自动递归加密。

2.1 编写 Shell 脚本

首先,我们需要创建一个 Shell 脚本,用于递归加密指定目录中的所有文件。以下是一个简单的 Shell 脚本示例:

#!/bin/bash
# 对指定目录中的所有文件进行加密
# 使用方式: bash encrypt.sh 目录路径

# 检查输入参数
if [ ! $1 ]
then
  echo "请输入目录路径"
  exit -1
elif [ ! -d $1 ]
then
  echo "目录不存在"
  exit -1
fi

# 递归遍历目录中的所有文件,并加密
function recursive_encrypt() {
   for file in $1/*
   do
     if [ -d $file ]
     then
       recursive_encrypt $file
     elif [ -f $file ]
     then
       gpg -e -r "收件人邮箱" $file
     fi
   done
}

recursive_encrypt $1
2.2 运行 Shell 脚本

在命令行中输入以下命令运行 Shell 脚本:

bash encrypt.sh 目录路径

其中,目录路径为需要加密的目录路径。

3. 总结

使用 Shell 脚本进行自动递归加密可以省去手动加密的麻烦,提高数据安全性。对于需要保护的文件,建议使用 gpg 工具进行加密处理,避免敏感信息泄露。