陳新龍
在戰(zhàn)爭中,將領(lǐng)為了預(yù)防情報(bào)在傳遞過程中被敵軍截獲,往往都對情報(bào)做了一些手腳,也就是我們俗稱的“加密”。在密碼學(xué)中,愷撒密碼(Caesar cipher)是一種最簡單且最廣為人知的加密技術(shù)。它是一種替換加密的技術(shù),明文中的所有字母都在字母表上向后(或向前)按照一個固定數(shù)目進(jìn)行偏移后被替換成密文。例如,當(dāng)偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。這個加密方法是以羅馬愷撒大帝的名字命名的,當(dāng)年愷撒曾用此方法與他的將軍們進(jìn)行聯(lián)系。
愷撒密碼的替換方法是通過排列明文和密文字母表,如果仔細(xì)觀察,我們能很輕易地找出其中的規(guī)律,密文字母表示將明文字母表向左或向右移動一個固定數(shù)目的位置。例如,當(dāng)偏移量是左移3的時候,解密時的密鑰就是3,當(dāng)然我們也可以設(shè)置偏移量:
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWX
YZ;
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZA
BC。
接下來分析一道愷撒密碼編程題:
在Text1中輸入明文:ABCDEFGHIJKLMNOPQRS
TUVWXYZ,根據(jù)愷撒密碼的原理當(dāng)點(diǎn)擊加密后,密文為:EFGHIJKLMNOPQRSTUVWXYZABC。當(dāng)我們輸入其他非字母字符時,密文還是和明文是一樣的,聰明的你是否已經(jīng)想出答案了?
首先我們先自行分析思維導(dǎo)圖,看看你的思路和我的思路有什么異同。

解析:首先把明文中的每個字符給提取出來,接著對提取出來的每個字符進(jìn)行單獨(dú)的字符判斷,判斷每個字符的范圍,這里根據(jù)密碼變化情況分為三個范圍,根據(jù)不同的范圍做出相應(yīng)的變化。比如A到W字母之間,我們可以把字母向后移動三位,X到Z字母之間,我們可以把字母向前移動23位,而剩下的其他非字母類的字符則不變化,最后組合起來,就變成了新的密文。……