Python密碼學(xué)Caesar?Cipher凱撒密碼算法教程
在最后一章中,我們處理了反向密碼.本章詳細(xì)討論了凱撒密碼.
凱撒密碼算法
凱撒密碼的算法具有以下特征;
- Caesar Cipher Technique是一種簡(jiǎn)單易用的加密技術(shù)方法.
- 這是一種簡(jiǎn)單的替換密碼類型.
- 每個(gè)純文本字母都被一個(gè)字母替換,字母的位數(shù)固定不變./p>
下圖描繪了Caesar密碼算法實(shí)現(xiàn)的工作原理 :
Caesar密碼算法的程序?qū)崿F(xiàn)如下 :
def?encrypt(text,s): result?=?"" ???#?transverse?the?plain?text ???for?i?in?range(len(text)): ??????char?=?text[i] ??????#?Encrypt?uppercase?characters?in?plain?text ??????if?(char.isupper()): ?????????result?+=?chr((ord(char)?+?s-65)?%?26?+?65) ??????#?Encrypt?lowercase?characters?in?plain?text ??????else: ?????????result?+=?chr((ord(char)?+?s?-?97)?%?26?+?97) ??????return?result #check?the?above?function text?=?"CEASER?CIPHER?DEMO" s?=?4 print?"Plain?Text?:?"?+?text print?"Shift?pattern?:?"?+?str(s) print?"Cipher:?"?+?encrypt(text,s)
輸出
你可以看到凱撒密碼,即輸出如下圖所示 :
說(shuō)明
- 一次遍歷一個(gè)純文本字符.
- 對(duì)于給定純文本中的每個(gè)字符,根據(jù)規(guī)則轉(zhuǎn)換給定字符,具體取決于加密過(guò)程文本的說(shuō)明和解密.
- 遵循這些步驟后,會(huì)生成一個(gè)新的字符串,稱為密文.
凱撒密碼算法的黑客攻擊
密碼文本可以被各種可能性攻擊.其中一種可能性是暴力技術(shù),其中涉及嘗試每個(gè)可能的解密密鑰.這種技術(shù)不需要太多努力,對(duì)于黑客來(lái)說(shuō)相對(duì)簡(jiǎn)單.
黑客攻擊凱撒密碼算法的程序?qū)崿F(xiàn)如下
message?=?'GIEWIVrGMTLIVrHIQS'?#encrypted?message LETTERS?=?'ABCDEFGHIJKLMNOPQRSTUVWXYZ' for?key?in?range(len(LETTERS)): ???translated?=?'' ???for?symbol?in?message: ??????if?symbol?in?LETTERS: ?????????num?=?LETTERS.find(symbol) ?????????num?=?num?-?key ?????????if?num?<?0: ????????????num?=?num?+?len(LETTERS) ?????????translated?=?translated?+?LETTERS[num] ??????else: ?????????translated?=?translated?+?symbol print('Hacking?key?#%s:?%s'?%?(key,?translated))
考慮上一個(gè)示例中加密的密文.然后,使用密鑰和使用暴力攻擊技術(shù)的可能的黑客攻擊方法的輸出如下 :
以上就是Python密碼學(xué)Caesar Cipher凱撒密碼算法教程的詳細(xì)內(nèi)容,更多關(guān)于Python密碼學(xué)Caesar Cipher的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python簡(jiǎn)單實(shí)現(xiàn)圖片文字分割
這篇文章主要為大家詳細(xì)介紹了python簡(jiǎn)單實(shí)現(xiàn)圖片文字分割,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09pandas 實(shí)現(xiàn)某一列分組,其他列合并成list
這篇文章主要介紹了pandas 實(shí)現(xiàn)某一列分組,其他列合并成list的案例。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python中reduce()函數(shù)的語(yǔ)法參數(shù)與作用詳解
這篇文章主要介紹了Python中reduce()函數(shù)的語(yǔ)法參數(shù)與作用詳解,reduce函數(shù)是通過(guò)函數(shù)對(duì)迭代器對(duì)象中的元素進(jìn)行遍歷操作,Python3.x中reduce函數(shù)已經(jīng)從內(nèi)置函數(shù)中取消了,轉(zhuǎn)而放在functools模塊中,需要的朋友可以參考下2023-08-08python實(shí)現(xiàn)馬丁策略回測(cè)3000只股票的實(shí)例代碼
這篇文章主要介紹了python實(shí)現(xiàn)馬丁策略回測(cè)3000只股票,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01Python PIL庫(kù)讀取設(shè)置圖像的像素內(nèi)容方法示例
這篇文章主要為大家介紹了使用Python PIL庫(kù)Image模塊中的getpixel和putpixel方法讀取設(shè)置圖像的像素內(nèi)容實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01flask/django 動(dòng)態(tài)查詢表結(jié)構(gòu)相同表名不同數(shù)據(jù)的Model實(shí)現(xiàn)方法
今天小編就為大家分享一篇flask/django 動(dòng)態(tài)查詢表結(jié)構(gòu)相同表名不同數(shù)據(jù)的Model實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08