攻防世界 crypto 入门题之转轮机加密

51 篇文章 8 订阅

攻防世界 crypto 入门题之转轮机加密

继续开启全栈梦想之逆向之旅~
这题是攻防世界crypto 入门题之转轮机加密

在这里插入图片描述下载附件:
在这里插入图片描述
好了,记住了,以后这个内容格式的就是转轮机加密了:
在这里插入图片描述
原理就是转齿轮把一个字母换成另一个,直接上一个修改后的大佬脚本:


rotor = [				#这里是要输入的转轮机原始字符串
    "ZWAXJGDLUBVIQHKYPNTCRMOSFE", "KPBELNACZDTRXMJQOYHGVSFUWI", 
    "BDMAIZVRNSJUWFHTEQGYXPLOCK", "RPLNDVHGFCUKTEBSXQYIZMJWAO", 
    "IHFRLABEUOTSGJVDKCPMNZQWXY", "AMKGHIWPNYCJBFZDRUSLOQXVET", 
    "GWTHSPYBXIZULVKMRAFDCEONJQ", "NOZUTWDCVRJLXKISEFAPMYGHBQ", 
    "XPLTDSRFHENYVUBMCQWAOIKZGJ", "UDNAJFBOWTGVRSCZQKELMXYIHP", 
    "MNBVCXZQWERTPOIUYALSKDJFHG", "LVNCMXZPQOWEIURYTASBKJDFHG", 
    "JZQAWSXCDERFVBGTYHNUMKILOP" 
]
 
cipher = "NFQKSEVOQOFNP"			#这是要输入转轮机密文
 
key = [2,3,7,5,13,12,9,1,8,10,4,11,6]		#这是要输入转轮机密钥
 
tmp_list=[]
 
for i in range(0, len(rotor)):
    tmp=""
    k = key[i] - 1
    for j in range(0, len(rotor[k])):
        if cipher[i] == rotor[k][j]:
            if j == 0:
                tmp=rotor[k]
                break
            else:
                tmp=rotor[k][j:] + rotor[k][0:j]
                break
    tmp_list.append(tmp)
# print(tmp_list)
 
message_list = []
for i in range(0, len(tmp_list[i])):
    tmp = ""
    for j in range(0, len(tmp_list)):
        tmp += tmp_list[j][i]
    message_list.append(tmp)
 
print(message_list)


def spread_list(lst):
    for item in lst:
        if isinstance(item,(list,tuple)):
            yield from spread_list(item)
        else:
            yield item
        pass

if __name__ == '__main__':
    for i in spread_list(message_list):
        print("*"*25)
        print(i)			#在多个输出中查找有语义的字符串即为flag内容

解毕,敬礼。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐一 · 林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值