unix下利用openssl对大文件进行aes加解密

网友投稿 941 2022-09-22

unix下利用openssl对大文件进行aes加解密

unix下利用openssl对大文件进行aes加解密

由于项目需要文件传输过程中对其进行加解密,所以就在网上查找下加解密的相关介绍,最开始采用RSA加解密算法,先是利用RSAEuro折腾了半天编译的环节卡住了(编译报错查不出原因),后面网上发现利用openssl的实现方法比较简单。

OpenSSL是一款功能强大的加密工具包,它集成了众多密码算法及实用工具。用rsa算法实现加解密很容易,但是只能处理小的数据文件(个人见解),处理大文件数据需要采用其他算法,

关于RSA算法的相关操作命令可以参考:

http://cnblogs.com/aLittleBitCool/archive/2011/09/22/2185418.html

现在介绍下利用openssl的aes算法加解密大数据文件,我写成了shell脚本,如下

加密encrypt.sh,其中KEYFILE="enc.key"为16位字符的密码文件

#!/bin/sh #功能:文件加密 if [ $# -ne 2 ] then    echo "用法:$0 要加密的文件名 加密后的文件名"    echo "例如:$0 hello hello.en"    exit 1 fi #flag为输入的加密文件名与加密后的文件名是否一样,1为相同文件名 flag=0 KEYFILE="enc.key" INFILE=$1 OUTFILE=$2 if [ -f $INFILE ] then    echo "开始加密$INFILE" else    echo "error:文件不存在!!!"    exit 1 fi if [ "$INFILE" = "$OUTFILE" ] then    OUTFILE=$2.TMP    flag=1 fi #对文件进行加密 openssl enc -e -aes-128-cbc -kfile $KEYFILE -in $INFILE -out $OUTFILE if [ $? -eq 0 ] then     if [ flag -eq 1 ]     then        mv $OUTFILE $INFILE        echo "加密完成!生成加密文件为$INFILE"     else        echo "加密完成!生成加密文件为$OUTFILE"     fi else     echo "error:加密失败!!!" fi exit 0

解密decrpt.sh

#!/bin/sh #功能:文件解密 if [ $# -ne 2 ] then    echo "用法:$0 要解密的文件名 解密后的文件名"    echo "例如:$0 hello.en hello.de"    exit 1 fi flag=0 KEYFILE="enc.key" INFILE=$1 OUTFILE=$2 if [ -f $INFILE ] then    echo "开始解密$INFILE" else    echo "error:文件不存在!!!"    exit 1 fi if [ "$INFILE" = "$OUTFILE" ] then    OUTFILE=$2.TMP    flag=1 fi #对文件进行解密 openssl enc -d -aes-128-cbc -kfile $KEYFILE -in $INFILE -out $OUTFILE if [ $? -eq 0 ] then     if [ flag -eq 1 ]     then        mv $OUTFILE $INFILE        echo "解密完成!生成解密文件为$INFILE"     else        echo "解密完成!生成解密文件为$OUTFILE"     fi else     echo "error:解密失败!!!" fi exit 0

仅供参考,如有问题请指正,谢谢!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C#逻辑运算符(cp是什么意思?)
下一篇:Unix Study--AIX Patch 的升级和回退
相关文章

 发表评论

暂时没有评论,来抢沙发吧~