天天看點

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

實作如下圖所示:

[root@localhost shell]# bash zong.sh 

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

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

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

3)退出

INPUT:q

shell代碼如下:

<code>#!/bin/bash</code>

<code>jiami(){</code>

<code>        </code><code>echo</code> <code>{a..z} | </code><code>xargs</code> <code>-n1 &gt;</code><code>file</code>

<code>        </code><code>echo</code> <code>{a..z} {A..Z}  @ @  | </code><code>xargs</code> <code>-n1 &gt;&gt;</code><code>file</code>

<code>        </code><code>read</code> <code>-p </code><code>"Input:"</code> <code>num</code>

<code>        </code><code>num1=`</code><code>echo</code> <code>$num |</code><code>sed</code> <code>'s/ /@/g'</code> <code>| </code><code>tr</code> <code>'0-9'</code> <code>'A-J'</code><code>`</code>

<code>        </code><code>a=${</code><code>#num1}</code>

<code>        </code><code>for</code> <code>i </code><code>in</code> <code>`</code><code>seq</code> <code>$a`</code>

<code>        </code><code>do</code>

<code>                 </code><code>q=`</code><code>echo</code> <code>$num1 | </code><code>cut</code> <code>-c $i`</code>

<code>                 </code><code>w=`</code><code>cat</code> <code>-n </code><code>file</code> <code>| </code><code>awk</code> <code>'/'</code><code>$q</code><code>'/'</code> <code>| </code><code>head</code> <code>-1|</code><code>awk</code> <code>'{print $1}'</code><code>`</code>

<code>                 </code><code>w=$(($w+1))</code>

<code>                 </code><code>d=`</code><code>cat</code> <code>file</code> <code>| </code><code>sed</code> <code>-n </code><code>''</code><code>$w</code><code>'p'</code><code>`</code>

<code>                 </code><code>echo</code> <code>-n </code><code>"$d"</code>

<code>        </code><code>done</code>

<code>        </code><code>echo</code>

<code>}</code>

<code>jiemi(){</code>

<code>         </code><code>echo</code> <code>{a..z} | </code><code>xargs</code> <code>-n1 &gt;</code><code>file</code>

<code>        </code><code>echo</code> <code>{a..z} {A..Z} {A..Z} @ @ | </code><code>xargs</code> <code>-n1 &gt;&gt;</code><code>file</code>

<code>        </code><code>num1=`</code><code>echo</code> <code>$num |</code><code>sed</code> <code>'s/@/@/g'</code><code>`</code>

<code>                </code><code>q=`</code><code>echo</code> <code>$num1 | </code><code>cut</code> <code>-c $i`</code>

<code>                </code><code>w=`</code><code>cat</code> <code>-n </code><code>file</code> <code>| </code><code>awk</code> <code>'/'</code><code>$q</code><code>'/'</code> <code>| </code><code>tail</code> <code>-1|</code><code>awk</code> <code>'{print $1}'</code><code>`</code>

<code>                </code><code>w=$(($w-1))</code>

<code>                </code><code>d=`</code><code>cat</code> <code>file</code> <code>| </code><code>sed</code> <code>-n </code><code>''</code><code>$w</code><code>'p'</code><code>`</code>

<code>                </code><code>v</code><code>=`</code><code>echo</code> <code>-n </code><code>"$d"</code><code>`</code>

<code>                </code><code>echo</code> <code>-n $</code><code>v</code> <code>| </code><code>sed</code> <code>'s/@/ /g'</code> <code>| </code><code>tr</code> <code>'A-J'</code> <code>'0-9'</code>

<code>together(){</code>

<code>case</code>  <code>$choice </code><code>in</code>

<code>        </code><code>1)</code>

<code>                </code><code>jiami</code>

<code>                </code><code>;;</code>

<code>        </code><code>2)</code>

<code>                </code><code>jiemi</code>

<code>        </code><code>3)</code>

<code>                </code><code>exit</code> <code>0</code>

<code>        </code><code>*)      </code><code>exit</code> <code>0</code>

<code>esac</code>

<code>while</code> <code>:</code>

<code>do</code>

<code>cat</code> <code>&lt;&lt; EOF</code>

<code>==================凱撒加密解密==============================</code>

<code>        </code><code>1)輸入字元串,進行凱撒加密(輸入的字元串隻能是字母、數字、空格)</code>

<code>        </code><code>2)已有加密後的字元串進行解密</code>

<code>        </code><code>3)退出</code>

<code>EOF</code>

<code>        </code><code>read</code> <code>-p </code><code>"INPUT:"</code> <code>choice</code>

<code>        </code><code>together</code>

<code>done</code>

實作效果如下:

INPUT:1

Input:a 123b

b@CDEc

INPUT:2

Input:b@CDEc

a 123b

本文轉自 大雪兒 51CTO部落格,原文連結:http://blog.51cto.com/dingxue/1972182,如需轉載請自行聯系原作者