工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆

shell简单的对字符串进行加解密(转)

好久没来了,为了表示我还活着,贴一段自己写的一段代码:

#!/bin/sh
###################################################################
# 程序名称:SecuEncrypt.sh
# 功能简述:对字符串进行加解密
# 数据流向:
# 传输方式:
# 配置文件:
# 配置说明:
# 编 写 人:jlwang
# 编写日期:2010-12-09
# 修改记录:
###################################################################

SPLIT_CHAR='&'

USAGE()
{
echo "Usage:"
echo "加密:SecuEncrypt.sh 0 [message]"
echo "解密:SecuEncrypt.sh 1 [message]"
}

#加密
Encrypt()
{
 Message=$1
 #echo $Message
 MessageLen=`echo $Message|awk '{print length($0)}'`
 AscMessage=""
 i=1
 while [ $i -le $MessageLen ]
 do
  iChar=`expr substr "$Message" $i 1`
  let iChar=`printf "%d" "'$iChar"`+100
  AscMessage=$AscMessage$iChar
  let i=$i+1
 done
 #echo $AscMessage

 MessageLen=`echo $AscMessage|awk '{print length($0)}'`
 let iCount=$MessageLen/10
 i=0
 while [ $i -le $iCount ]
 do
  let j=$i*10+1
  MTEMP=`expr substr "$AscMessage" $j 10`
  #echo $MTEMP
  if [[ -n $MTEMP ]]; then

   MTEMP="1"$MTEMP
   MTEMP=`echo $MTEMP|awk '{printf "%x",$0}'`
   if [ $i -ne 0 ]; then
    HexMessage=$HexMessage$SPLIT_CHAR$MTEMP
   else
    HexMessage=$HexMessage$MTEMP
   fi
  fi
  let i=$i+1
 done

 echo $HexMessage
}

#解密
NonEncrypt()
{
 Message=$1
 AscMessage=""
 ResultMsg=""
 Message=`echo $Message | awk -F $SPLIT_CHAR '{print $0}' | sed "s/$SPLIT_CHAR/ /g"`
 for list in $Message
 do
  TMP=`echo $((16#$list))`
  TMP=`echo $TMP|awk '{print substr($0,2,length($0))}'`
  AscMessage=$AscMessage$TMP
 done
 #echo $AscMessage
 MessageLen=`echo $AscMessage|awk '{print length($0)}'`
 let iCount=$MessageLen/3
 i=0
 while [ $i -lt $iCount ]
 do
  let j=$i*3+1
  MTEMP=`expr substr "$AscMessage" $j 3`
  let MTEMP=$MTEMP-100
  MTEMP=`echo $MTEMP|awk '{printf "%c",$0}'`
  ResultMsg=$ResultMsg$MTEMP
  let i=$i+1
 done

 echo $ResultMsg
}

if [ $# -ne 2 ]; then
 USAGE
 exit -1
fi

WORKTYPE=$1
MESSAGE=$2
if [ $WORKTYPE -eq 0 ]; then
 ReturnMessage=`Encrypt $MESSAGE`
 echo $ReturnMessage
else if [ $WORKTYPE -eq 1 ]; then
 ReturnMessage=`NonEncrypt $MESSAGE`
 echo $ReturnMessage
else
 USAGE
 exit -1
     fi
fi

运行结果:

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):