我正在尝试开发一个程序,对使用 Vigenere 密码编码的消息进行编码、解码和破解加密。我被卡住的地方是破坏消息(没有密钥)的[加密]。我知道如何去做,但我不知道如何编码。我的想法如下:
该程序将系统地生成潜在的密钥,长度从 1 开始到 26 结束。这些密钥将包含英文字母表中的字母并且不区分大小写。对于每个密钥长度(从 1 到 26 的任意位置),密钥将用字母“a”填充,然后程序将检查它们的密钥是否正确(我有另一种方法)。如果他们的键不正确,那么最后一个位置的字母将被旋转到字母表中的下一个字母。一旦最后一个字母经过所有 26 个可能的位置,倒数第二个字母将旋转,然后最后一个字母和倒数第二个字母将相应旋转,依此类推(一直回到第一个[potential] 键的字母)。每次生成新密钥时,正在使用单独的方法检查 [potential] 密钥,当找到正确的密钥时该方法停止。密钥创建进程将如下所示:
[starting with keys that are only 1 letter long]
a
b
c
...
x
y
z
[now the potential key length becomes two]
aa
ab
ac
ad
...
zw
zx
zy
zz
[eventually the potential key length becomes 26]
aaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaab
aaaaaaaaaaaaaaaaaaaaaaaaac
aaaaaaaaaaaaaaaaaaaaaaaaad
...
zzzzzzzzzzzzzzzzzzzzzzzzzw
zzzzzzzzzzzzzzzzzzzzzzzzzx
zzzzzzzzzzzzzzzzzzzzzzzzzy
zzzzzzzzzzzzzzzzzzzzzzzzzz
(希望你能看到那里的模式)
如果有人拥有或知道如何执行此操作的代码,或者可以帮助指导完成编写此代码所需的步骤,将不胜感激。
谢谢!