美文网首页
凯撒加密法

凯撒加密法

作者: Y_166d | 来源:发表于2021-11-29 20:28 被阅读0次

    凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。

    凯撒加密法的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
    明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
    密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
    使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:
    明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
    密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ


    加密代码

    pyperclip包下载地址

    #凯撒加密法
    import pyperclip
    
    message = 'This is my secret message.'
    key = 13 #密匙
    mode = 'encrypt' #密文或明文
    
    LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    
    translated = ''
    message = message.upper()
    
    for symbol in message:
        if symbol in LETTERS:
            num = LETTERS.find(symbol)
            if mode == 'encrypt':
                num = num + key
            elif mode == 'decrypt':
                num = num - key
    
            if num >= len(LETTERS):
                num = num - len(LETTERS)
            elif num < 0:
                num = num + len(LETTERS)
    
            translated = translated + LETTERS[num]
    1
        else:
            translated = translated + symbol
    
    print(translated)
    pyperclip.copy(translated) #将转化完的密文复制到剪切板
    

    暴力破解方法

    #暴力破译凯撒加密法
    message = 'GUVF VF ZL FRPERG ZRFFNTR.'
    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 += LETTERS[num]
    
            else:
                translated += symbol
    
        print('key #%s: %s' % (key, translated))
    

    相关文章

      网友评论

          本文标题:凯撒加密法

          本文链接:https://www.haomeiwen.com/subject/jxylxrtx.html