python3實現凱撒加密

2021-10-07 01:58:06 字數 2086 閱讀 6633

愷撒密碼是一種替換加密方式技術。它的加密原理是明文中的所有字母都在字母表上向後(或向前)按照乙個固定數目進行偏移後被替換成密文。根據偏移量的不同,還存在若干特定的愷撒密碼名稱:

例如,當偏移量是左移3的時候(解密時的金鑰就是3):

明文本母表:abcdefghijklmnopqrstuvwxyz ;

密文字母表:defghijklmnopqrstuvwxyzabc。

這個加密方法是以羅馬共和時期愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯絡。

# encoding: utf-8

# encoding: utf-8

"""@description: 凱撒密碼

@author: baola

@time: 2020-06-10 20:14

@file: caesarcrypto.py

@version: python3.8.1

"""def

caesarencode

(crypto_str, shift)

:"""

凱撒加密

:param crypto_str: 要加密的明文

:param shift: 偏移量

:return: 返回加密後的密文

"""result =

"" num =

int(shift)

for word in crypto_str:

ch =

ord(word)if(

ord(

'a')

<= ch <=

ord(

'z')):

ch += num

if ch >

ord(

'z')

: ch -=

26if

(ord

('a'

)<= ch <=

ord(

'z')):

ch += num

if ch >

ord(

'z')

: ch -=

26 result +=

chr(ch)

return result

defcaesardecode

(crypto_str, shift)

:"""

凱撒解密

:param crypto_str: 要解密的密文

:param shift: 偏移量

:return: 返回解密後問明文

"""result =

"" num =

int(shift)

for word in crypto_str:

ch =

ord(word)if(

ord(

'a')

<= ch <=

ord(

'z')):

ch -= num

if ch <

ord(

'a')

: ch +=

26if

(ord

('a'

)<= ch <=

ord(

'z')):

ch -= num

if ch <

ord(

'a')

: ch +=

26 result +=

chr(ch)

return result

#解密:全部遍歷

# for i in range(1,26):

# print(i,":",caesardecode("oknqdbqmoq",i))

shift =

0#偏移量

str=

""#文字

# #解密

# print(caesardecode(str,shift))

# #加密

# print(caesarencode(str,shift))

python 實現凱撒加密

凱撒密碼 caesar 基本原理 字母表一共有26個英文本母,加密時,我們需要將某個明文本母做n位偏移得到密文,這個n最多為26,而且偏移為26時和偏移為0時一樣,明文和密文對應相等,實際上可以說最大的偏移量為25,這裡的偏移量是這個加密解密演算法的核心,我們可以說他就是秘鑰。公式 加密公式 f a...

python3實現AES加密

這幾天研究了一下 python 實現 aes 加密,有很多坑 這個 aes 加密的主要坑就在於這些條件,首先 aes 加密有一下幾個引數 秘鑰 加密的時候用秘鑰,解密的時候需要同樣的秘鑰才能解出來 明文 需要加密的引數 模式 aes 加密常用的有 ecb 和 cbc 模式 我只用了這兩個模式,還有其...

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

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