Python 关键词密码

Python 关键词密码,python,python-3.4,Python,Python 3.4,我已经尝试了很长一段时间,试图创建一个关键字密码,这样我就可以创建一个密码应用程序。然而,我似乎不能得到它的权利,我只能创建一个正常的密码有人可以请改变我的密码为关键字密码 import string alphabet = string.ascii_lowercase message = input('Please insert the message you want to encrypt: ') key = int(input('What key value do you want in

我已经尝试了很长一段时间,试图创建一个关键字密码,这样我就可以创建一个密码应用程序。然而,我似乎不能得到它的权利,我只能创建一个正常的密码有人可以请改变我的密码为关键字密码

import string

alphabet = string.ascii_lowercase
message = input('Please insert the message you want to encrypt: ')
key = int(input('What key value do you want in your encryption? '))

output = []

for m in message:
    if m in alphabet:
        output.append(alphabet[(alphabet.index(m) + key) % (len(alphabet))])

print(''.join(output))

message1 = input('please inset what you want to decrypt:')
key1 = int(input('please insert the key value wanted:'))

output = []

for m in message1:
    if m in alphabet:
        output.append(alphabet[(alphabet.index(m) - key1) % (len(alphabet))])


print(''.join(output))


print('thanks for coding!')

首先,必须输入关键字而不是简单的值,并将关键字的每个字母的值存储在列表中:

key1 = input('please insert the key value wanted:')
keys = [ alphabet.index(m) + 1 for m in key1 if m in alphabet ]
例如,键
abc
将给出
[1,2,3]

然后在计算编码字符串时迭代该列表:

for i, m in enumerate(message):
    if m in alphabet:
        output.append(alphabet[(alphabet.index(m) + keys[i % len(keys)])
                                % (len(alphabet))])

还有同样的事情(使用
-keys[…]
而不是
+keys[…]
)进行解码,它应该可以工作相关的:看起来你指的是Vigenere密码,但是,你还没有弄清楚是什么让你在实现这个密码时遇到困难。总的想法是,键随每次替换而变化,类似于字母表中字母的索引;您已经在代码中使用的概念。