crypto轮转机
1、转轮机的工作原理
每一个旋转轮代表一个单表替代系统,旋转一个引脚,再转变为另一个单表替代系统。为使机器更安全,可把几种转轮和移动的齿轮结合起来。因为所有转轮以不同的速度移动,n个转轮的机器的周期是26的n次方,即n个单表替代系统。最后一个转轮转完一圈之后,它前面的转轮就旋转一个引脚,有点像时钟的齿轮。
2、恩格玛(Enigma)密码
第二次世界大战,波兰人和英国人成功破译了德国著名的的“恩格玛”密码,因此,盟军提前得知了德国的许多重大军事行动。
恩格玛密码机的工作原理
I.采用转轮机原理
II.三级替代,将第一个旋转轮的输入开关连接到另一个旋转轮。第二个旋转轮提供第二个映射。第二个映射的输入又连接到每三个旋转轮
此处题目中的13个字符串为主体
通过所给顺序排序 : 2,3,7,5,13,12,9,1,8,10,4,11,6
将排序后的第一个字符串移位,使得N在字符串首部
第二个字符串移位,使得F在字符串首部
依次按照下列所给提示排序
NFQKSEVOQOFNP
得出13条结果,寻找自己所需要的信息
代码如下:
import re
sss = '1: < ZWAXJGDLUBVIQHKYPNTCRMOSFE <
2: < KPBELNACZDTRXMJQOYHGVSFUWI <
3: < BDMAIZVRNSJUWFHTEQGYXPLOCK <
4: < RPLNDVHGFCUKTEBSXQYIZMJWAO <
5: < IHFRLABEUOTSGJVDKCPMNZQWXY <
6: < AMKGHIWPNYCJBFZDRUSLOQXVET <
7: < GWTHSPYBXIZULVKMRAFDCEONJQ <
8: < NOZUTWDCVRJLXKISEFAPMYGHBQ <
9: < XPLTDSRFHENYVUBMCQWAOIKZGJ <
10: < UDNAJFBOWTGVRSCZQKELMXYIHP <
11: < MNBVCXZQWERTPOIUYALSKDJFHG <
12: < LVNCMXZPQOWEIURYTASBKJDFHG <
13: < JZQAWSXCDERFVBGTYHNUMKILOP <'
m ='NFQKSEVOQOFNP'
# 将sss转换为列表形式
content=re.findall(r'< (.*?) <',sss,re.S)
# re.S:DOTALL,此模式下,“.”的匹配不受限制,可匹配任何字符,包括换行符
iv=[2,3,7,5,13,12,9,1,8,10,4,11,6]
print(content)
vvv=[]
for i in range(13):
index=content[iv[i]-1].index(m[i])
vvv.append(index)
print(vvv)
for i in range(0,26):
flag="++"
for j in range(13):
flag += content[iv[j]-1][(vvv[j]+i)%26]
print(flag.lower())
此处为python运行脚本结果
最后确认密码为fireinthehole
觉得有帮助的顺手给笔者点个赞呗!谢谢!