凱撒密碼與python實現

2021-08-17 19:20:52 字數 1562 閱讀 8974

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

let k, x, y ε

• encryption: y = ek(x) ≡ x + k mod 26

• decryption: x = dk(x) ≡ y - k mod 26

**塊語法遵循標準python3:

@[email protected]

'''en_decrypt.py'''

#把加密明文全部轉化為小寫

deftoalpha

(c,i):

c = c.lower()

num = ord(c)

if num >= 97

and num <= 122:

num = 97 + ((num - 97) + i) % 26

return chr(num)

#string 明文 i 移位引數

defencrypt

(string,i):

string_new = ''

for s in string:

string_new += str(toalpha(s,i))

print(string_new)

return string_new

#string 密文 i 移位引數

defdecrypt

(string,i):

encrypt(string,-i)

'''main.py'''

from en_decrypt import *

defmain

(): test = input("請輸入明文:")

num = input("請輸入移位個數:")

num = int(num)

encode = encrypt(test,num)

decrypt(encode,num)

if __name__ == "__main__":

for i in range(3):

main()

請輸入明文:python

請輸入移位個數:12

bkftaz

python

請輸入明文:hello world

請輸入移位個數:8

pmttw ewztl

hello world

請輸入明文:life is short,you need python

請輸入移位個數:24

jgdc gq qfmpr,wms lccb nwrfml

life is short,you need python

process finished with exit code 0

python實現凱撒密碼

在密碼學中,凱撒密碼 或稱愷撒加密 愷撒變換 變換加密 是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術。這個加密方法是以愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯絡。愷撒密碼通常被作為其他更複雜的加密方法中的乙個步驟,例如維吉尼亞密碼。愷撒密碼還在現代的rot13系統中被應用。...

古典密碼 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中凱撒密碼加密 凱撒密碼加密

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