Python密碼學Caesar Cipher凱撒密碼算法教程
在最後一章中,我們處理瞭反向密碼.本章詳細討論瞭凱撒密碼.
凱撒密碼算法
凱撒密碼的算法具有以下特征;
- Caesar Cipher Technique是一種簡單易用的加密技術方法.
- 這是一種簡單的替換密碼類型.
- 每個純文本字母都被一個字母替換,字母的位數固定不變./p>
下圖描繪瞭Caesar密碼算法實現的工作原理 :
Caesar密碼算法的程序實現如下 :
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)
輸出
你可以看到凱撒密碼,即輸出如下圖所示 :
說明
- 一次遍歷一個純文本字符.
- 對於給定純文本中的每個字符,根據規則轉換給定字符,具體取決於加密過程文本的說明和解密.
- 遵循這些步驟後,會生成一個新的字符串,稱為密文.
凱撒密碼算法的黑客攻擊
密碼文本可以被各種可能性攻擊.其中一種可能性是暴力技術,其中涉及嘗試每個可能的解密密鑰.這種技術不需要太多努力,對於黑客來說相對簡單.
黑客攻擊凱撒密碼算法的程序實現如下
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的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- python密碼學Vignere密碼教程
- Python進行密碼學反向密碼教程
- Python密碼學ROT13算法教程
- Python使用Crypto庫實現加密解密的示例詳解
- python密碼學換位密碼及換位解密轉置加密教程