[如何制作一个python程序来解密没有密钥的凯撒密码? (频率分析)

问题描述 投票:-2回答:1

我不知道如何执行此操作,有人可以帮助我启动并引导我编写一个程序来解密凯撒加密文本。我有一个程序可以解密并打印所有26个班次,但是我只想打印一个正确的班次,谢谢!

python cryptography caesar-cipher
1个回答
-1
投票

在看到问题中提到“频率分析”一词后进行编辑。

您可以通过两种方式执行此操作,具体取决于您要解密的文本的类型。

频率分析如果您的文本很长,则可以通过频率分析来完成。每个英文字母都有一定的出现频率(例如here)。您知道加密文本中最频繁出现的字母很可能是E,T或A。您可以一次替换一个字母,看看“单词”框架是否开始出现。在文本解密之前,这将是一次反复的尝试。或者,您可以将加密文本中的字母与纯英文字母进行匹配,具体取决于匹配的“最近”频率。如果单词之间没有空格,您的任务将变得更加困难(但是我想因为您正在处理简单的Caesar密码,所以可能性较小)。

查找英语词典

如果您没有足够长的文字,或者文字使用方式歪斜而又不正确的文字, “普通”英语,那么我会做如下。请注意,这种方法将意味着您可以使用英语词典进行查找。

您可以将所有单词(每个班次生成的单词)输入英语词典中。如果每个单词都找到一个匹配项,则可以给+1分;否则,可以给-1分。正确的班次将获得最高分。这更加自动化,并且反复试验相对较少。

[请注意,如果您的加密文本之间没有空格,则还需要调整此方法。

请让我们进一步了解您拥有的加密文本的种类以及是否仅需要使用频率分析。

© www.soinside.com 2019 - 2024. All rights reserved.