python實現凱撒密碼

2022-10-04 13:00:16 字數 2727 閱讀 7589

在密碼學中,凱撒密碼(或稱愷撒加密、愷撒變換、變換加密)是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術。這個加密方法是以愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯絡。愷撒密碼通常被作為其他更複雜的加密方法中的乙個步驟,例如維吉尼亞密碼。愷撒密碼還在現代的rot13系統中被應用。但是和所有的利用字母表進行替換的加密技術一樣,愷撒密碼非常容易被破解,而且在實際應用中也無法保證通訊安全。

儘管是最簡單的加密技術,但那該怎麼在python中如何現實呢?

**如下:

def ask():

while true:

print("welcome to you coming!")

print("you can choose mode : encrypt(e) or decrypt(d)") #有解密和加密模式

pr"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() #將輸入的模式進行變換(從大寫變小寫,小寫部分不變)

if mode in 'encrypt e decrypt d q'.split(): #當模式是被要求的encrypt e(加密模式)decrypt d(解密模式) q(退出)時進行下一步操作

#print(mode) #列印輸入的模式

return mode #將modewuuiag的值作為返回值

else:

print('please input right option!!') #輸出提示

def getkey(mode):

key = 0 #設定預設的key

while key <= 0 or key >= 26: #限制key的範圍在(1-25以內的數)

try: #這裡進行異常處理,將非整數型別的輸入進行錯誤提示列印

key = int(input("please input your key:(1-26)"))

except:

print("please input correct number!!")

#對解密的密匙進行變換

if mode == 'd' or mode == 'decrypt':

key = -key

return key

def getmesswww.cppcns.comage(key):

#輸入資訊

while true:

informetion = input("please input message!!") #輸入要解密或者加密的資訊

if informetion.isalpha(): #判斷輸入的字串是否為純字母

break

else:

print("please input continuous character!!!") #輸錯提示

message = '' #設定輸出的初始值

for x in informetion: #將輸入資訊裡的進行逐一字母加密/解密

num = ord(x) #將單一字元通過ascii表進行轉換,將字母轉換為數字

num += key #加上key的值進行下列運算

if x.isupper(): #判斷是否是大寫字母

if num > ord('z'): #對超出ascii對應數值的範圍進行處理

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表進行轉換,將數字轉換為字母

return message #返回message的值

if __name__=="__main__": #主程式

mode = ask() #將ask()返回值存於mode變數中

if mode == 'q': #進行退出判斷

print('welcome!!')

else:

key = getkey(mode) #將mode變數的值帶入getkey函式中執行,執行後將key的值存入到key變數中

last = getmessage(key) 程式設計客棧 #將key變數的值帶入到getmessage函式中,執行後將message的值存入到last變數中

print(last)

本文標題: python實現凱撒密碼

本文位址: /jiaoben/python/385099.html

古典密碼 python實現凱撒密碼

def secret str input 請輸入明文 k int input 請輸入移位 str list list str i 0 for i in range len str list if 96 ord str list i 123 str list i chr ord str list i ...

凱撒密碼與python實現

凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是 通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後 或向前 按照乙個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母a將被替換成d,b變成e,以此類推x將變成a,y變成b,...

python中凱撒密碼加密 凱撒密碼加密

您似乎是在互動式提示中輸入此 而不是將其儲存為檔案並執行它。如果是這樣,那麼當您使用input時,視窗將在允許您繼續輸入 之前提示您輸入。在plaintext input python 輸入此行後,鍵入要加密的單詞,然後按enter鍵。只有這樣你才能寫下這行 在開始下一行code 之前,您應該輸入所...