Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4255
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-27 16:12
个人简介

关注操作系统 网络 脚本编程 数据库

文章分类

全部博文(1)

文章存档

2013年(1)

我的朋友

分类: 系统运维

2013-09-30 11:15:34

大部分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脚本如下(变量啥的命名不太规范):


点击(此处)折叠或打开

  1. #!/bin/sh
  2. echo "$1" > k
  3. exten=$(awk '/\.aes$/ {print}' < k | sed 's/^.*\.//g')
  4. jyname=$(awk '/\.aes$/ {print}' < k | sed 's/\.aes.*$//g')
  5. if [ "$exten" = "aes" ] ; then
  6. openssl enc -d -aes-128-cbc -in "$1" -out "$jyname"
  7. rm -i "$1"
  8. rm k
  9. else
  10. filename=$(sed 's/\/$//g' < k)
  11. if [ -f "$filename" ] ; then
  12. echo "请马上输入加密口令并记住!"
  13. openssl enc -aes-128-cbc -in "$filename" -out "$filename".aes
  14. rm "$filename"
  15. rm k
  16. elif [ -d "$filename" ] ; then
  17. tar cvf "$filename".tar "$filename"
  18. echo "请马上输入加密口令并记住!"
  19. openssl enc -aes-128-cbc -in "$filename".tar -out "$filename".tar.aes
  20. rm -rf "$filename" "$filename".tar k
  21. echo "注意:已经打包成tar格式并加密!"
  22. else
  23. echo "文件名不存在或不支持此类文件类型."
  24. fi
  25. fi

如脚本名为enc_dec.sh 则执行命令./enc_dec.sh 文件名(或目录名) 就可以对文件进行加密解密

阅读(1410) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~