愷撒密碼是一種替換加密方式技術。它的加密原理是明文中的所有字母都在字母表上向後(或向前)按照乙個固定數目進行偏移後被替換成密文。根據偏移量的不同,還存在若干特定的愷撒密碼名稱:
例如,當偏移量是左移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 之前,您應該輸入所...