當前位置:首頁 » 編程語言 » 凱撒密碼Python

凱撒密碼Python

發布時間: 2022-04-22 21:44:56

Ⅰ 怎麼用python編輯出此凱撒密碼的解密密碼

凱撒密碼的加密密鑰與解密密鑰是相反數,因此,k給相反數即可:
kaisa(kaisa(s, 3), -3)

Ⅱ 求python中的愷撒密碼的加密,解密,以及破解的程序

凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是:通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推X將變成A,Y變成B,Z變成C。由此可見,位數就是凱撒密碼加密和解密的密鑰。
如下代碼是以偏移量為13展開計算的。123

源代碼如下:
sr1="abcdefghijklmnopqrstuvwxyz"sr2=sr1.upper()
sr=sr1+sr1+sr2+sr2
st="The Zen of Python"sResult=""for j in st: if j==" ":
sResult = sResult +" "
continue
i=sr.find(j) if(i>-1):
sResult=sResult+sr[i+13]print sResult12345678910111213

運行結果為:
Gur Mra bs Clguba

Ⅲ 用Python2.7.10編寫凱撒密碼加密和解密程序

s=raw_input('[開始加密]pleaseinputyourstr:')
s=list(s)
n=0
forswins:
s[n]=chr(ord(sw)+3)
n=n+1
sout=''
forsw2ins:
sout=sout+sw2
print'[加密結果]:',sout

解密的類似,主要用到ord、chr函數。

Ⅳ Python凱撒密碼,若向後移動N位,怎麼修改

def caesar_code(n, plain_text) -> str:

plain_text = str.upper(plain_text)

alphabets = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

mapping = dict((char, i) for i, char in enumerate(alphabets))

encrypted = []

for token in plain_text.split():

for char in token:

encrypted.append(alphabets[(mapping[char] + n) % 26])

encrypted.append(' ')

return str.join('', encrypted[:-1])



Ⅳ python凱撒密碼,編程,急用

def use_list(): str_before=input("請輸入明文:") str_change=str_before.lower() str_list=list(str_change) str_list_change=str_list i=0 whilei

Ⅵ 如何用python編寫凱撒密碼

凱撒密碼是對字母表整體進行偏移的一種變換加密。因此,建立一個字母表,對明文中每個字母,在這個字母表中偏移固定的長度即可得到對應的密文字母。

最基本的實現如下:

defcaesarcipher(s:str,rot:int=3)->str:
_='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
encode=''
i=0
forcins:
try:
encode+=_[(_.index(c.upper())+rot)%len(_)]
except(Exception,)ase:
encode+=c
returnencode


print(caesarcipher('hellow'))
print(caesarcipher('KHOORZ',-3))

如果要求解密後保持大小寫,那麼,字母表_還需要包含所有小寫字母並且index時不對c做upper處理.

同樣的,也可以在字母表中追加數字,各種符號,空格等.

Ⅶ python語言凱撒密碼加密為什麼要%26

%26是確保加密後的值仍然在字母表范圍內(當然為了能解密,前提條件是原文的字元也不能超過這26個字母)

為什麼要%26呢?直接用原文的Unicode值加三再轉換成字元不就可以了嗎?---

  1. 凱撒密碼應該是很古老的加密技術吧,那時候計算機都還沒出現,ASCII碼或者你說的unicode碼更不存在。所以說表示字元的就那麼26個。當然你說我可以創造一些字元啊,那也沒問題,和直接用數字也沒多少區別。但有可能保持這26個字母更能起到混淆視聽的作用,畢竟它們可能不能一眼看出是密碼。

  2. 不管在古代還是現代,增加字型檔都是有成本的,比如雕刻活字、設計字體等,能復用現有字體的話,列印傳播密文的成本就大大降低。

Ⅷ python凱撒密碼實現

#codinng=utf-8
x='abcdefghijklmnopqrstuvwxyz'.split('')
y='nopqrstuvwxyzabcdefghijklm'.split('')
X=map(lambdax:x.upper(),x)
Y=map(lambdax:x.upper(),y)
dict_kaisa=dict(zip(x+X,y+Y))#創建一個字典,鍵為原字元串,值為加密字元串


#定義凱撒加密函數,輸入字元串,輸出凱撒加密後字元串
defkaisa(string):
result=[]
foriinrange(len(string)):
ifstring[i]indict_kaisa.keys():
result.append(dict_kaisa[string[i]])
else:
result.append(string[i])
return''.join(result)


print(kaisa('TheZenofPython'))#結果為GurMrabsClguba

Ⅸ python編程 凱撒密碼

我覺得是因為你那句if, 'Z'的ascii碼(十進制)為90, 而 'z'對應的為122。語句判斷如果輸入的字元串的值+前面寫的值大於'Z'(90)並且大於'z'(122),也就是說得到的值必須大於122才進行之後的-26的操作,由於90+5<122 所以沒有執行-26 得到的就是95 即'_'這個字元。希望可以幫助到你,望採納。

熱點內容
數字化儲存與編譯是什麼 發布:2025-05-18 02:56:55 瀏覽:216
個人網站模板源碼 發布:2025-05-18 02:51:17 瀏覽:489
主伺服器ip地址 發布:2025-05-18 02:46:29 瀏覽:855
電腦配置太低玩不了絕地求生怎麼辦 發布:2025-05-18 02:38:39 瀏覽:796
存儲過程怎麼出錯了 發布:2025-05-18 02:37:16 瀏覽:367
32寸演算法 發布:2025-05-18 02:22:14 瀏覽:743
寶塔資料庫備份 發布:2025-05-18 02:14:18 瀏覽:192
安卓商店下載的光遇是什麼服 發布:2025-05-18 02:13:38 瀏覽:31
網頁挖礦源碼 發布:2025-05-18 02:13:34 瀏覽:307
centosftp伺服器設置參數 發布:2025-05-18 02:12:55 瀏覽:216