攻防世界:转轮机加密

本文介绍了杰斐逊转轮加密器的工作原理,使用36片转轮进行字母乱序加密,通过特定密钥重新排列字母并找出密文在转轮中的位置,最终解密出旗标(flag)。
摘要由CSDN通过智能技术生成

根据托马斯·杰斐逊可以看出是杰斐逊转轮加密器:由36片同样大小的木制转轮,套在一根杆上。每片转轮的圆周边缘上可有乱序的26个英文字母,加密方转动加密器上的转轮,是明文(不超过36字)正好出现在同一行上,这时转轮排列的其他25行都是无意义的乱码,把其中任意一行的乱码抄写来,得到密文。

解题思路:按照密钥数字的顺序重新排列13组字母,然后查找每一个密文在对应字母表(转轮)里的位置,并将该密文放到头部,剩下的25种(也就是除去密文的情况)就会有flag。

txt='''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 <'''
x=[]
line=txt.strip().split('\n')
#print(line)
for i in line:
    x.append(i[4:32].strip().replace('<','').strip())
#print(x)
#x=['ZWAXJGDLUBVIQHKYPNTCRMOSFE', 'KPBELNACZDTRXMJQOYHGVSFUWI', 'BDMAIZVRNSJUWFHTEQGYXPLOCK', 'RPLNDVHGFCUKTEBSXQYIZMJWAO', 'IHFRLABEUOTSGJVDKCPMNZQWXY', 'AMKGHIWPNYCJBFZDRUSLOQXVET', 'GWTHSPYBXIZULVKMRAFDCEONJQ', 'NOZUTWDCVRJLXKISEFAPMYGHBQ', 'XPLTDSRFHENYVUBMCQWAOIKZGJ', 'UDNAJFBOWTGVRSCZQKELMXYIHP', 'MNBVCXZQWERTPOIUYALSKDJFHG', 'LVNCMXZPQOWEIURYTASBKJDFHG', 'JZQAWSXCDERFVBGTYHNUMKILOP']
key='2,3,7,5,13,12,9,1,8,10,4,11,6'
key=key.split(',')
key = [int(i) for i in key]
#print(key)
#key=[2, 3, 7, 5, 13, 12, 9, 1, 8, 10, 4, 11, 6]
c='NFQKSEVOQOFNP'
newtxt=[]
for i in key:
    newtxt.append(x[i-1])#将转轮按照密文的顺序排列
for i in range(len(newtxt)):
    index=newtxt[i].index(c[i])#查找密文在对应转轮中的位置
    newtxt[i]=newtxt[i][index:]+newtxt[i][0:index]#将密文其放到首位
for i in range(1,len(newtxt[0])):
    for j in range(len(newtxt)):
        print(newtxt[j][i].lower(),end="")
    print('\n')

最后就能找到flag啦

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值