转轮机加密脚本

以bugku托马斯.杰斐逊为例

s = ["ZWAXJGDLUBVIQHKYPNTCRMOSFE",
     "KPBELNACZDTRXMJQOYHGVSFUWI",
     "BDMAIZVRNSJUWFHTEQGYXPLOCK",
     "RPLNDVHGFCUKTEBSXQYIZMJWAO",
     "IHFRLABEUOTSGJVDKCPMNZQWXY",
     "AMKGHIWPNYCJBFZDRUSLOQXVET",
     "GWTHSPYBXIZULVKMRAFDCEONJQ",
     "NOZUTWDCVRJLXKISEFAPMYGHBQ",
     "QWATDSRFHENYVUBMCOIKZGJXPL",
     "WABMCXPLTDSRJQZGOIKFHENYVU",
     "XPLTDAOIKFZGHENYSRUBMCQWVJ",
     "TDSWAYXPLVUBOIKZGJRFHENMCQ",
     "BMCSRFHLTDENQWAOXPYVUIKZGJ",
     "XPHKZGJTDSENYVUBMLAOIRFCQW"]#给定加密表
first = []
result = []
key = [2,5,1,3,6,4,9,7,8,14,10,13,11,12]#密钥
c = "HCBTSXWCRQGLES"#密文

for i in key:
    first.append(s[i-1])#首先得到正确顺序
#print(first)

for i in range(len(key)):
     for j in range(len(first[i])):#接着在每一行里找到与密文对应的字母,进行切片
          if first[i][j] == c[i]:
               text = first[i][j:] + first[i][0:j]
               result.append(text)
               break
          else:
               continue

for i in range(len(result)):
     print(result[i])
HGVSFUWIKPBELNACZDTRXMJQOY
CPMNZQWXYIHFRLABEUOTSGJVDK
BVIQHKYPNTCRMOSFEZWAXJGDLU
TEQGYXPLOCKBDMAIZVRNSJUWFH
SLOQXVETAMKGHIWPNYCJBFZDRU
XQYIZMJWAORPLNDVHGFCUKTEBS
WATDSRFHENYVUBMCOIKZGJXPLQ
CEONJQGWTHSPYBXIZULVKMRAFD
RJLXKISEFAPMYGHBQNOZUTWDCV
QWXPHKZGJTDSENYVUBMLAOIRFC
GOIKFHENYVUWABMCXPLTDSRJQZ
LTDENQWAOXPYVUIKZGJBMCSRFH
ENYSRUBMCQWVJXPLTDAOIKFZGH
SWAYXPLVUBOIKZGJRFHENMCQTD

竖着看,得到有意义的flag:xsxsbugkuadmin(改成小写)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值