目录

Caesar Cipher

在最后一章中,我们讨论了反向密码。 本章详细讨论了凯撒密码。

凯撒密码算法

凯撒密码算法具有以下特点 -

  • Caesar Cipher技术是一种简单易用的加密技术。

  • 它是简单类型的替换密码。

  • 每个纯文本字母都被一个字母替换,该字母具有一些固定数量的位置和字母。

下图描绘了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)

输出 (Output)

您可以看到Caesar密码,即输出,如下图所示 -

凯撒密码

说明 (Explanation)

纯文本字符一次遍历一个。

  • 对于给定纯文本中的每个字符,根据规则转换给定字符,具体取决于加密和解密文本的过程。

  • 在执行这些步骤之后,将生成一个新字符串,称为密文。

黑客凯撒密码算法

密文可以被各种可能性破解。 其中一种可能性是Brute Force Technique,它涉及尝试每个可能的解密密钥。 这种技术不需要太多努力,对于黑客来说相对简单。

黑客凯撒密码算法的程序实现如下 -

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))

考虑前面示例中加密的密文。 然后,使用密钥和使用强力攻击技术的可能的黑客攻击方法的输出如下 -

攻击凯撒密码
↑回到顶部↑
WIKI教程 @2018