一文詳解凱撒密碼的原理及Python實(shí)現(xiàn)
一、什么是愷撒密碼
愷撒密碼是古羅馬愷撒大帝用來對軍事情報(bào)進(jìn)行加密的算法,它采用了替換方法對信息中的每一個(gè)英文字符循環(huán)替換為字母表序列該字符后面第三個(gè)字符:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

原文字符P,其密文字符C滿足如下條件:
C = ( P + 3 ) mod 26
解密方法反之,滿足:
P = ( C – 3 ) mod 26
二、程序運(yùn)行環(huán)境
程序運(yùn)行環(huán)境是:pycharm2021

三、愷撒密碼:加密
愷撒密碼的加密算法程序首先接收用戶輸入的文本
然后對字母a-z和字母A-Z按照密碼算法進(jìn)行轉(zhuǎn)換
3.1 愷撒密碼加密實(shí)例程序

# 愷撒密碼加密
def Caesar_PW_Encryption():
inputText = input("請輸入明文文本: ")
for index in inputText:
if "a" <= index <= "z":
print(chr(ord("a") + (ord(index) - ord("a") + 3) % 26), end='')
elif "A" <= index <= "Z":
print(chr(ord("A") + (ord(index) - ord("A") + 3) % 26), end='')
else:
print(index, end='')
在主函數(shù)中調(diào)用這個(gè)Caesar_PW_Encryption愷撒密碼加密函數(shù),如下所示
if __name__ == '__main__':
# 愷撒密碼加密
Caesar_PW_Encryption()
3.2 愷撒密碼加密實(shí)例程序運(yùn)行結(jié)果

四、愷撒密碼:解密
愷撒密碼的解密算法程序首先接收用戶輸入的加密文本
然后對字母a-z和字 母A-Z按照密 碼算法進(jìn)行反向轉(zhuǎn)換
4.1 愷撒密碼解密實(shí)例程序

# 愷撒密碼解密
def Ceasar_PW_Decryption():
inputText = input("請輸入加密后文本: ")
for index in inputText:
if "a" <= index <= "z":
print(chr(ord("a") + (ord(index) - ord("a") - 3) % 26), end='')
elif "A" <= index <= "Z":
print(chr(ord("A") + (ord(index) - ord("A") - 3) % 26), end='')
else:
print(index, end='')在主函數(shù)中調(diào)用這個(gè)Caesar_PW_Encryption愷撒密碼加密函數(shù),如下所示
if __name__ == '__main__':
# 愷撒密碼加密
Caesar_PW_Encryption()
# 愷撒密碼解密
Ceasar_PW_Decryption()
4.2 愷撒密碼解密實(shí)例程序運(yùn)行結(jié)果

五、完整程序
# 愷撒密碼加密
def Caesar_PW_Encryption():
inputText = input("請輸入明文文本: ")
for index in inputText:
if "a" <= index <= "z":
print(chr(ord("a") + (ord(index) - ord("a") + 3) % 26), end='')
elif "A" <= index <= "Z":
print(chr(ord("A") + (ord(index) - ord("A") + 3) % 26), end='')
else:
print(index, end='')
# 愷撒密碼解密
def Ceasar_PW_Decryption():
inputText = input("請輸入加密后文本: ")
for index in inputText:
if "a" <= index <= "z":
print(chr(ord("a") + (ord(index) - ord("a") - 3) % 26), end='')
elif "A" <= index <= "Z":
print(chr(ord("A") + (ord(index) - ord("A") - 3) % 26), end='')
else:
print(index, end='')
if __name__ == '__main__':
# 愷撒密碼加密
Caesar_PW_Encryption()
# 愷撒密碼解密
Ceasar_PW_Decryption()六、總結(jié)
本文主要講解了愷撒密碼:采用了替換方法對信息中的每一個(gè)英文字符循環(huán)替換為字母表序列該字符后面第三個(gè)字符。并通過一個(gè)實(shí)例程序來進(jìn)一步加強(qiáng)對愷撒密碼的理解與運(yùn)用。
以上就是一文詳解凱撒密碼的原理及Python實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Python凱撒密碼的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
已安裝tensorflow-gpu,但keras無法使用GPU加速的解決
今天小編就為大家分享一篇已安裝tensorflow-gpu,但keras無法使用GPU加速的解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python中子類繼承父類的__init__方法實(shí)例
這篇文章主要給大家詳細(xì)介紹了python中子類如何繼承父類的__init__方法,文中給出了詳細(xì)的示例代碼,相信對大家的理解和學(xué)習(xí)具有一定參考價(jià)值,有需要的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2016-12-12
Python實(shí)現(xiàn)嵌套列表及字典并按某一元素去重復(fù)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)嵌套列表及字典并按某一元素去重復(fù)功能,涉及Python列表嵌套列表、列表嵌套字典,及按照某一元素去重復(fù)的相關(guān)操作方法,需要的朋友可以參考下2017-11-11
Python中字符串String的基本內(nèi)置函數(shù)與過濾字符模塊函數(shù)的基本用法
這篇文章主要介紹了Python中字符串String的基本內(nèi)置函數(shù)與過濾字符模塊函數(shù)的基本用法 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Python實(shí)現(xiàn)不規(guī)則圖形填充的思路
這篇文章主要介紹了Python實(shí)現(xiàn)不規(guī)則圖形填充的思路,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
Python實(shí)現(xiàn)UDP與TCP通信的示例詳解
UDP是一種無連接的、不可靠的傳輸協(xié)議;TCP是一種可靠的、面向連接的傳輸協(xié)議。這篇文章主要介紹了Python實(shí)現(xiàn)UDP與TCP通信的方法,需要的可以參考一下2023-03-03

