【问题标题】:How to add another key into a vigenere cipher如何将另一个密钥添加到 vigenere 密码中
【发布时间】:2016-02-07 14:44:16
【问题描述】:

我正在编写一个 vigenere 密码,并想添加另一个密钥。这进一步加密了我输入的文本。谁能解释如何做到这一点?

LETTERS = 'ZABCDEFGHIJKLMNOPQRSTUVWXY'
def main():
    myMode = input("Encrypt 'e' or Decrypt 'd': ")
    myMessage = input('What text would you like to encrypt: ')
    myKey = input('Enter your key: ')
    myKey2 = input('Enter your second key: ')
    if myMode == 'encrypt' or myMode == 'e':
        translated = encryptMessage(myKey, myMessage)
    elif myMode == 'decrypt' or myMode == 'd':
        translated = decryptMessage(myKey, myMessage)
    print('%sYour Message: ' % (myMode.title()))
    print(translated)
    print()

def encryptMessage(key, message):
    return translateMessage(key, message, 'encrypt')

def decryptMessage(key, message):
    return translateMessage(key, message, 'decrypt')

def translateMessage(key, message, mode):
    translated = []

    keyIndex = 0
    key = key.upper())

    for symbol in message: 
        num =LETTERS .find(symbol.upper())
        if num != -1: 
            if mode == 'encrypt':
                num += LETTERS .find(key[keyIndex]) 
            elif mode == 'decrypt':
                num -= LETTERS .find(key[keyIndex])

            num %= len(LETTERS)

            if symbol.isupper():
                translated.append(LETTERS[num])
            elif symbol.islower():
                translated.append(LETTERS[num].lower())

            keyIndex += 1 
            if keyIndex == len(key):
                keyIndex = 0
        else:
            translated.append(symbol)
    return ''.join(translated)
if __name__ == '__main__':
    main()

我已经创建了变量,但不确定在哪里使用它们。任何帮助都会很棒。

【问题讨论】:

    标签: python encryption vigenere


    【解决方案1】:

    translateMessage()开头的key可以改成keys。然后检查keys 是否为字符串。 (if isinstance(keys, str)) 如果是,请说keys = [keys] 将其列为列表。然后,将函数的其余部分放入 for 循环中,如下所示:for key in keys:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多