Python密码学

Python凯撒密码

Python密码学-凯撒密码详细操作教程
在上一章中,我们讨论了反向密码。本章详细讨论了凯撒密码。

凯撒密码算法

凯撒密码算法具有以下特征-
Caesar密码技术是一种简便的加密技术。 这是简单的替代密码类型。 每个纯文本字母都由一个固定位置的字母替换为一个字母。
下图描述了Caesar密码算法实现的工作方式-
凯撒密码的算法
Caesar密码算法的程序实现如下-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-28
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)

输出

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

说明

一次遍历纯文本字符。
对于给定纯文本中的每个字符,根据文本的加密和解密过程,按照规则转换给定字符。 按照步骤操作后,将生成一个新字符串,称为密文。

Caesar密码算法的破解

密文可以被各种方式破解。 蛮力技术是其中一种可能,其中涉及尝试所有可能的解密密钥。这种技术不需要太多的工作,并且对于黑客来说相对简单。
入侵Caesar密码算法的程序实现如下-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-28
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))
请考虑上一个示例中加密的密文。然后,使用密钥和可能的黑客方法以及蛮力攻击技术的输出如下-
凯撒密码的破解
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4