Shell文件加解密

1、加密脚本

sh script/encrypt.sh test01.sh test01-enc.sh -aes256

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

2、解密脚本

sh script/decrypt.sh test01-enc.sh.sh test01.sh -aes256

#!/bin/sh 
#功能:文件解密 
if [ $# -ne 3 ]
then
  echo "用法:$0 要解密的文件名 解密后的文件名 解密方式"
  echo "例如:$0 hello.en hello.de aes"
  exit 1
fi
flag=0
KEYFILE="/opt/mbfe/script/enc.key"
INFILE=$1
OUTFILE=$2
DECRYPT_MODE=$3
if [ -f $INFILE ]
then
  echo "开始解密$INFILE,解密方式为$DECRYPT_MODE"
else
  echo "error:文件不存在!!!"
  exit 1
fi
if [ "$INFILE" = "$OUTFILE" ]
then
  OUTFILE=$2.TMP
  flag=1
fi
#对文件进行解密 
openssl enc -d $DECRYPT_MODE -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

3、秘钥文件(内容自己定义)  enc.key

4、加解密方式

加解密方式选择
-aes-128-cbc               -aes-128-cbc-hmac-sha1     -aes-128-cbc-hmac-sha256  
-aes-128-ccm               -aes-128-cfb               -aes-128-cfb1             
-aes-128-cfb8              -aes-128-ctr               -aes-128-ecb              
-aes-128-gcm               -aes-128-ofb               -aes-128-xts              
-aes-192-cbc               -aes-192-ccm               -aes-192-cfb              
-aes-192-cfb1              -aes-192-cfb8              -aes-192-ctr              
-aes-192-ecb               -aes-192-gcm               -aes-192-ofb              
-aes-256-cbc               -aes-256-cbc-hmac-sha1     -aes-256-cbc-hmac-sha256  
-aes-256-ccm               -aes-256-cfb               -aes-256-cfb1             
-aes-256-cfb8              -aes-256-ctr               -aes-256-ecb              
-aes-256-gcm               -aes-256-ofb               -aes-256-xts              
-aes128                    -aes192                    -aes256                   
-bf                        -bf-cbc                    -bf-cfb                   
-bf-ecb                    -bf-ofb                    -blowfish                 
-camellia-128-cbc          -camellia-128-cfb          -camellia-128-cfb1        
-camellia-128-cfb8         -camellia-128-ecb          -camellia-128-ofb         
-camellia-192-cbc          -camellia-192-cfb          -camellia-192-cfb1        
-camellia-192-cfb8         -camellia-192-ecb          -camellia-192-ofb         
-camellia-256-cbc          -camellia-256-cfb          -camellia-256-cfb1        
-camellia-256-cfb8         -camellia-256-ecb          -camellia-256-ofb         
-camellia128               -camellia192               -camellia256              
-cast                      -cast-cbc                  -cast5-cbc                
-cast5-cfb                 -cast5-ecb                 -cast5-ofb                
-des                       -des-cbc                   -des-cfb                  
-des-cfb1                  -des-cfb8                  -des-ecb                  
-des-ede                   -des-ede-cbc               -des-ede-cfb              
-des-ede-ofb               -des-ede3                  -des-ede3-cbc             
-des-ede3-cfb              -des-ede3-cfb1             -des-ede3-cfb8            
-des-ede3-ofb              -des-ofb                   -des3                     
-desx                      -desx-cbc                  -id-aes128-CCM            
-id-aes128-GCM             -id-aes128-wrap            -id-aes128-wrap-pad       
-id-aes192-CCM             -id-aes192-GCM             -id-aes192-wrap           
-id-aes192-wrap-pad        -id-aes256-CCM             -id-aes256-GCM            
-id-aes256-wrap            -id-aes256-wrap-pad        -id-smime-alg-CMS3DESwrap 
-idea                      -idea-cbc                  -idea-cfb                 
-idea-ecb                  -idea-ofb                  -rc2                      
-rc2-40-cbc                -rc2-64-cbc                -rc2-cbc                  
-rc2-cfb                   -rc2-ecb                   -rc2-ofb                  
-rc4                       -rc4-40                    -rc4-hmac-md5             
-rc5                       -rc5-cbc                   -rc5-cfb                  
-rc5-ecb                   -rc5-ofb                   -seed                     
-seed-cbc                  -seed-cfb                  -seed-ecb                 
-seed-of

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值