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其它相關文章!

推薦閱讀: