目录
  • 凯撒密码算法
    • 输出
    • 说明
  • 凯撒密码算法的黑客攻击

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

    凯撒密码算法

    凯撒密码的算法具有以下特征;

    • Caesar Cipher Technique是一种简单易用的加密技术方法.
    • 这是一种简单的替换密码类型.
    • 每个纯文本字母都被一个字母替换,字母的位数固定不变./p>

    下图描绘了Caesar密码算法实现的工作原理 :

    Python密码学Caesar Cipher凯撒密码算法教程

    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)

    输出

    你可以看到凯撒密码,即输出如下图所示 :

    Python密码学Caesar Cipher凯撒密码算法教程

    说明

    • 一次遍历一个纯文本字符.
    • 对于给定纯文本中的每个字符,根据规则转换给定字符,具体取决于加密过程文本的说明和解密.
    • 遵循这些步骤后,会生成一个新的字符串,称为密文.

    凯撒密码算法的黑客攻击

    密码文本可以被各种可能性攻击.其中一种可能性是暴力技术,其中涉及尝试每个可能的解密密钥.这种技术不需要太多努力,对于黑客来说相对简单.

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

    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凯撒密码算法教程的详细内容,更多关于Python密码学Caesar Cipher的资料请关注其它相关文章!

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。