Python密碼學Caesar?Cipher凱撒密碼算法教程
在最后一章中,我們處理了反向密碼.本章詳細討論了凱撒密碼.
凱撒密碼算法
凱撒密碼的算法具有以下特征;
- Caesar Cipher Technique是一種簡單易用的加密技術方法.
- 這是一種簡單的替換密碼類型.
- 每個純文本字母都被一個字母替換,字母的位數(shù)固定不變./p>
下圖描繪了Caesar密碼算法實現(xiàn)的工作原理 :
Caesar密碼算法的程序實現(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)
輸出
你可以看到凱撒密碼,即輸出如下圖所示 :
說明
- 一次遍歷一個純文本字符.
- 對于給定純文本中的每個字符,根據(jù)規(guī)則轉換給定字符,具體取決于加密過程文本的說明和解密.
- 遵循這些步驟后,會生成一個新的字符串,稱為密文.
凱撒密碼算法的黑客攻擊
密碼文本可以被各種可能性攻擊.其中一種可能性是暴力技術,其中涉及嘗試每個可能的解密密鑰.這種技術不需要太多努力,對于黑客來說相對簡單.
黑客攻擊凱撒密碼算法的程序實現(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))
考慮上一個示例中加密的密文.然后,使用密鑰和使用暴力攻擊技術的可能的黑客攻擊方法的輸出如下 :
以上就是Python密碼學Caesar Cipher凱撒密碼算法教程的詳細內容,更多關于Python密碼學Caesar Cipher的資料請關注腳本之家其它相關文章!
相關文章
pandas 實現(xiàn)某一列分組,其他列合并成list
這篇文章主要介紹了pandas 實現(xiàn)某一列分組,其他列合并成list的案例。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python中reduce()函數(shù)的語法參數(shù)與作用詳解
這篇文章主要介紹了Python中reduce()函數(shù)的語法參數(shù)與作用詳解,reduce函數(shù)是通過函數(shù)對迭代器對象中的元素進行遍歷操作,Python3.x中reduce函數(shù)已經從內置函數(shù)中取消了,轉而放在functools模塊中,需要的朋友可以參考下2023-08-08python實現(xiàn)馬丁策略回測3000只股票的實例代碼
這篇文章主要介紹了python實現(xiàn)馬丁策略回測3000只股票,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01flask/django 動態(tài)查詢表結構相同表名不同數(shù)據(jù)的Model實現(xiàn)方法
今天小編就為大家分享一篇flask/django 動態(tài)查詢表結構相同表名不同數(shù)據(jù)的Model實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08