扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
由于项目需要文件传输过程中对其进行加解密,所以就在网上查找下加解密的相关介绍,最开始采用RSA加解密算法,先是利用RSAEuro折腾了半天编译的环节卡住了(编译报错查不出原因),后面网上发现利用openssl的实现方法比较简单。
创新互联公司专注于企业成都全网营销推广、网站重做改版、高明网站定制设计、自适应品牌网站建设、H5建站、商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为高明等各大城市提供网站开发制作服务。OpenSSL是一款功能强大的加密工具包,它集成了众多密码算法及实用工具。用rsa算法实现加解密很容易,但是只能处理小的数据文件(个人见解),处理大文件数据需要采用其他算法,
关于RSA算法的相关操作命令可以参考:
http://www.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仅供参考,如有问题请指正,谢谢!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流