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凱撒密碼算法教程的詳細內(nèi)容,更多關于Python密碼學Caesar Cipher的資料請關注腳本之家其它相關文章!
相關文章
利用Python程序讀取Excel創(chuàng)建折線圖
這篇文章主要介紹了利用Python程序讀取Excel創(chuàng)建折線圖,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
Django 解決上傳文件時,request.FILES為空的問題
這篇文章主要介紹了Django 解決上傳文件時,request.FILES為空的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
PyTorch解決ModuleNotFoundError: No module named
本文主要介紹了PyTorch解決ModuleNotFoundError: No module named ‘torch’,這個錯誤意味著我們的Python環(huán)境中沒有安裝PyTorch庫,無法正常使用其功能,下面就來具體介紹一下2024-03-03

