while(flag): key = {} for i in range(6): mp[i] = itertools.permutations(range(len(mf[i]))) #result = list(itertools.product(p1, p2, p3)) for i in range(6): for j in range(len(mf[i])): key.update({most_common_letters_m[i][mp[j]]: mf[i][j]}) decrypted_text = decrypt(cipher_text, key) if is_plaintext(decrypted_text, words): flag=False return key 修改
时间: 2024-04-25 17:26:38 浏览: 160
IterTools.jl:常见的功能迭代器模式
这个修改可以解决之前的错误提示。在这个修改中,将 `mp` 中的元素改为了 `itertools.permutations` 对象,然后在循环中使用 `next` 函数获取了每个 `itertools.permutations` 对象中的下一个元素,将其作为列表的索引来访问 `mf` 列表中的元素,构建出了完整的密钥。同时,将 `flag` 的初始值设置为 `True`,循环条件改为 `while flag`,在找到符合要求的密钥之后将 `flag` 的值改为 `False`,退出循环并返回密钥。
阅读全文