检查每个可能的字母密码组合

时间:2011-03-11 15:53:30

标签: substitution encryption

我有我认为的密码(这不是作业,只是我认为我试图通过编码来解决的挑战),这是:

“uiw uiw n la ltid mtel teacyihr n heeig sfsst”

为了尝试解决它,我想迭代字母表中每个字母的密码分配的每种可能组合(以明显的暴力方式),但我无法找到一种优雅的方式那。一旦我得到密码赋值的当前迭代,我想我将根据密码转换密文,然后将第一个3个字母的单词与3个字母的单词表进行比较,将最后两个单词与5个字母的单词表进行比较,如果这三个都是实际单词,我会将结果打印到文件中。这应该给我一个合理的起点列表,以便能够清除不正确的结果。如果有人对如何实现迭代密码有任何想法,我会非常感激。非常感谢,

皮博迪

1 个答案:

答案 0 :(得分:0)

您可以拥有26 for 循环。

行。我在开玩笑。


伪代码中一个明显但效率低下的版本:

for i = 0 - 26^26-1
  /* a = i/26^25 % 26
     ...
     z = i/26^0 % 26 */
  if all deciphered words are in the word list
    print
  end if
end for

顺便说一句,我认为这不是你问题中解释的正确方法,因为我找不到英语句子中 double 存在同一个单词的例子。 / p>