Python中密码的偏移键WORD

时间:2014-11-04 20:57:59

标签: python

所以我在学校计算GCSE控制评估的一半。

我已经完成了我的受控评估任务之一,即创建一个Caeser Cipher,它通过用一个用户必须输入的密钥号来抵消消息中的每个字母来加密消息。

任务二是做同样的事情,但使用密钥WORD。

这意味着关键字字符串必须相乘,直到它与用户输入的消息长度相同(从第一部分开始)。例如:

关键字= GCSE

usersmessage =你好,我叫杰克

关键字必须相乘,因此与消息相比,它看起来像这样:

gcsegcsegcsegcsegcsegc

您好,我的名字是杰克

现在上面的消息和关键字长度相同(22个字符,虽然看起来不一样)

接下来,每个字符的每个ascii值必须加在一起,这意味着每个字符串的第一个字母加在一起,然后是第二个,然后是第三个等等。

在消息的每个字母现在都有新值之前,一旦程序执行了此过程,它将需要在屏幕上打印加密的消息以供用户查看。任何人都可以帮忙吗?这里很难解释,但希望有人会知道我在做什么:) 我遇到的主要问题是我不能将字符串乘以带小数位的数字,有什么方法可以解决这个问题吗?如果没有人能回答这个问题,请告诉我如何实现这一目标,谢谢。

1 个答案:

答案 0 :(得分:1)

不要在这里使用乘法,使用itertools.cycle并迭代字符串:

>>> from itertools import cycle
>>> word = cycle('gcse')
>>> message = 'Hello, my name is Jake'
>>> ''.join([next(word) for c in message])
'gcsegcsegcsegcsegcsegc'