大部分linux发行版都带有openssl,无需再安装加密工具,使用openssl就可以对文件进行加密。
openssl加密和解密的命令如下:
加密:
openssl enc -aes-128-cbc -in filename -out filename.out
解密:
openssl enc -d -aes-128-cbc -in filename.out -out filename
#filename 对应的是文件名 filename.out对应的加密后的文件名 -aes-128-cbc 为使用的加密算法
为了使用更加方便,本人写了个脚本。作用:执行的时,脚本后跟上文件名。加密后提示是否删除原文件,加密后生成的文件在原文件名的基础上附上扩展名'.aes'。
如果脚本后附上的文件名的扩展名为aes,则执行解密命令,解密后提示是否删除解密前的文件。如果后面跟的是个目录,则把该目录打包后进行加密操作。
shell脚本如下(变量啥的命名不太规范):
-
#!/bin/sh
-
echo "$1" > k
-
exten=$(awk '/\.aes$/ {print}' < k | sed 's/^.*\.//g')
-
jyname=$(awk '/\.aes$/ {print}' < k | sed 's/\.aes.*$//g')
-
if [ "$exten" = "aes" ] ; then
-
openssl enc -d -aes-128-cbc -in "$1" -out "$jyname"
-
rm -i "$1"
-
rm k
-
else
-
filename=$(sed 's/\/$//g' < k)
-
if [ -f "$filename" ] ; then
-
echo "请马上输入加密口令并记住!"
-
openssl enc -aes-128-cbc -in "$filename" -out "$filename".aes
-
rm "$filename"
-
rm k
-
elif [ -d "$filename" ] ; then
-
tar cvf "$filename".tar "$filename"
-
echo "请马上输入加密口令并记住!"
-
openssl enc -aes-128-cbc -in "$filename".tar -out "$filename".tar.aes
-
rm -rf "$filename" "$filename".tar k
-
echo "注意:已经打包成tar格式并加密!"
-
else
-
echo "文件名不存在或不支持此类文件类型."
-
fi
-
fi
如脚本名为enc_dec.sh 则执行命令
./enc_dec.sh 文件名(或目录名) 就可以对文件进行加密解密
阅读(1410) | 评论(0) | 转发(0) |