1. 程式人生 > >shell整理(38)===凱撒加密和解密

shell整理(38)===凱撒加密和解密

加密 凱撒

實現如下圖所示:

[[email protected] shell]# bash zong.sh


==================凱撒加密解密==============================

1)輸入字符串,進行凱撒加密(輸入的字符串只能是字母、數字、空格)


2)已有加密後的字符串進行解密


3)退出

INPUT:q


shell代碼如下:

#!/bin/bash

jiami(){


        echo {a..z} | xargs -n1 >file
        echo {a..z} {A..Z}  @ @  | xargs -n1 >>file
        read -p "Input:" num
        num1=`echo $num |sed ‘s/ /@/g‘ | tr ‘0-9‘ ‘A-J‘`
        a=${#num1}
        for i in `seq $a`
        do
                 q=`echo $num1 | cut -c $i`
                 w=`cat -n file | awk ‘/‘$q‘/‘ | head -1|awk ‘{print $1}‘`
                 w=$(($w+1))
                 d=`cat file | sed -n ‘‘$w‘p‘`
                 echo -n "$d"
        done
        echo


}

jiemi(){

         echo {a..z} | xargs -n1 >file
        echo {a..z} {A..Z} {A..Z} @ @ | xargs -n1 >>file
        read -p "Input:" num
        num1=`echo $num |sed ‘s/@/@/g‘`
        a=${#num1}
        for i in `seq $a`
        do
                q=`echo $num1 | cut -c $i`
                w=`cat -n file | awk ‘/‘$q‘/‘ | tail -1|awk ‘{print $1}‘`
                w=$(($w-1))
                d=`cat file | sed -n ‘‘$w‘p‘`
                v=`echo -n "$d"`
                echo -n $v | sed ‘s/@/ /g‘ | tr ‘A-J‘ ‘0-9‘
        done
        echo

}

together(){
case  $choice in
        1)
                jiami
                ;;
        2)
                jiemi
                ;;
        3)
                exit 0
                ;;
        *)      exit 0
                ;;
esac
}

while :
do
cat << EOF

==================凱撒加密解密==============================
        1)輸入字符串,進行凱撒加密(輸入的字符串只能是字母、數字、空格)

        2)已有加密後的字符串進行解密

        3)退出
EOF
        read -p "INPUT:" choice

        together
        echo
done

實現效果如下:

==================凱撒加密解密==============================

1)輸入字符串,進行凱撒加密(輸入的字符串只能是字母、數字、空格)


2)已有加密後的字符串進行解密


3)退出

INPUT:1

Input:a 123b

[email protected]



==================凱撒加密解密==============================

1)輸入字符串,進行凱撒加密(輸入的字符串只能是字母、數字、空格)


2)已有加密後的字符串進行解密


3)退出

INPUT:2

Input:[email protected]

a 123b


本文出自 “IT生活” 博客,請務必保留此出處http://dingxue.blog.51cto.com/12290895/1972182

shell整理(38)===凱撒加密和解密