成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術(shù)文章
文章詳情頁

python實(shí)現(xiàn)凱撒密碼

瀏覽:5日期:2022-06-22 11:43:41

在密碼學(xué)中,凱撒密碼(或稱愷撒加密、愷撒變換、變換加密)是一種最簡(jiǎn)單且最廣為人知的加密技術(shù)。它是一種替換加密的技術(shù)。這個(gè)加密方法是以愷撒的名字命名的,當(dāng)年愷撒曾用此方法與其將軍們進(jìn)行聯(lián)系。愷撒密碼通常被作為其他更復(fù)雜的加密方法中的一個(gè)步驟,例如維吉尼亞密碼。愷撒密碼還在現(xiàn)代的ROT13系統(tǒng)中被應(yīng)用。但是和所有的利用字母表進(jìn)行替換的加密技術(shù)一樣,愷撒密碼非常容易被破解,而且在實(shí)際應(yīng)用中也無法保證通信安全。

盡管是最簡(jiǎn)單的加密技術(shù),但那該怎么在python中如何現(xiàn)實(shí)呢?

代碼如下:

def ask(): while True: print('Welcome to you coming!') print('you can choose mode : encrypt(e) or decrypt(d)') #有解密和加密模式 print('If you choose encrypt ,you can lock the message!') #加密提示 print('If you choose decrypt ,you can unlock the message!') #解密提示 print('If you wanna exit , input ’q’!!') #退出提示 mode = input('choose:').lower()#將輸入的模式進(jìn)行變換(從大寫變小寫,小寫部分不變) if mode in ’encrypt e decrypt d q’.split(): #當(dāng)模式是被要求的encrypt e(加密模式)decrypt d(解密模式) q(退出)時(shí)進(jìn)行下一步操作 #print(mode) #打印輸入的模式 return mode #將mode的值作為返回值 else: print(’Please input right option!!’) #輸出提示def getKey(mode): key = 0 #設(shè)置默認(rèn)的key while key <= 0 or key >= 26: #限制key的范圍在(1-25以內(nèi)的數(shù)) try: #這里進(jìn)行異常處理,將非整數(shù)類型的輸入進(jìn)行錯(cuò)誤提示打印 key = int(input('Please input your key:(1-26)')) except: print('Please input correct number!!') #對(duì)解密的密匙進(jìn)行變換 if mode == ’d’ or mode == ’decrypt’: key = -key return keydef getMessage(key): #輸入信息 while True: informetion = input('Please input message!!') #輸入要解密或者加密的信息 if informetion.isalpha(): #判斷輸入的字符串是否為純字母 break else: print('Please input continuous character!!!') #輸錯(cuò)提示 message = ’’ #設(shè)置輸出的初始值 for x in informetion: #將輸入信息里的進(jìn)行逐一字母加密/解密 num = ord(x) #將單一字符通過ascii表進(jìn)行轉(zhuǎn)換,將字母轉(zhuǎn)換為數(shù)字 num += key #加上key的值進(jìn)行下列運(yùn)算 if x.isupper(): #判斷是否是大寫字母 if num > ord(’Z’): #對(duì)超出ascii對(duì)應(yīng)數(shù)值的范圍進(jìn)行處理 num -=26 print(message) elif num < ord(’A’): num +=26 print(message) elif x.islower(): #判斷是否小寫字母 if num > ord(’z’): num -=26 elif num < ord(’a’): num +=26 message += chr(num) #將單一字符通過ascii表進(jìn)行轉(zhuǎn)換,將數(shù)字轉(zhuǎn)換為字母 return message #返回message的值 if __name__=='__main__': #主程序 mode = ask() #將ask()返回值存于mode變量中 if mode == ’q’: #進(jìn)行退出判斷 print(’welcome!!’) else: key = getKey(mode) #將mode變量的值帶入getKey函數(shù)中運(yùn)行,運(yùn)行后將key的值存入到key變量中 last = getMessage(key) #將key變量的值帶入到getMessage函數(shù)中,運(yùn)行后將message的值存入到last變量中 print(last)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美亚洲日本视频 | 成人亚洲欧美综合 | 91精品手机国产在线能 | 日本天堂网址 | 91久热| 美国一级毛片在线 | 在线はじめてのおるすばん | 国产精品一级毛片不收费 | 欧美成人乱弄视频 | 国产欧美成人 | 中国国产一级毛片 | 国产一区国产二区国产三区 | 免费看a级 | 特级黄色毛片视频 | 国产人成| 亚洲一级特黄特黄的大片 | 欧美精品高清在线观看 | 欧美一级毛片兔费播放 | 毛片在线看免费 | 免费观看欧美一级牲片一 | 久久精品久久久久 | 国产自在自线午夜精品 | 欧美日韩成人在线视频 | 免费黄色成人 | 欧美巨乳在线观看 | 99久久精品免费观看区一 | 欧美一级在线播放 | 91精品一区国产高清在线 | 国产浮力第一页草草影院 | 免费看欧美一级特黄a毛片 免费看片aⅴ免费大片 | 久久久国产99久久国产久 | 国产精品合集一区二区 | 视频国产91 | a级毛片免费高清视频 | 亚洲精品一区二区观看 | 欧美精品一区二区三区四区 | 亚洲资源在线观看 | 波多野结衣视频免费 | 99在线小视频 | 日韩毛片免费线上观看 | 久久视频免费 |