我有一个变量:message = "Hello World"和我构建了一个函数来调整它:
def encrypt3(message,key):
random.seed(key)
l = range(len(message))
random.shuffle(l)
return "".join([message[x] for x in l])这个函数只是混淆了消息,这样它就可以看起来像这样,例如"Hrl llWodeo“
现在,如果我想再次使用itertools.permutations将其转换为消息,我如何才能做到呢?当我尝试这样做时:print [x for x in itertools.permutations(shuffledMsg)]程序以错误结束,因为它有很多可能性。
发布于 2013-11-11 19:14:16
这当然是“不可移动”,只要你知道原始种子,因为我们可以简单地重新运行它,以找出每个字符转移到哪里。
import random
def encrypt3(message,key):
random.seed(key)
l = range(len(message))
random.shuffle(l)
return "".join([message[x] for x in l])
key = 'bob'
message = 'Hello World!'
print(encrypt3(message, key))
def unshuffle(message, key):
random.seed(key)
new_list = list(range(len(message)))
old_list = [None] * len(new_list)
random.shuffle(new_list)
for i, old_i in enumerate(new_list):
old_list[old_i] = message[i]
return ''.join(old_list)
print(unshuffle(encrypt3(message, key), key))https://stackoverflow.com/questions/19912790
复制相似问题