攻防世界crypto轮转机

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

觉得有帮助的顺手给笔者点个赞呗!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值