好久没来了,为了表示我还活着,贴一段自己写的一段代码:
#!/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
运行结果: