CTF密码学Crypto2

1.转轮加密(托马斯.杰斐逊密码)

利用下面的python脚本进行转换解密:
代码来源:原作者

#秘钥
key="2,5,1,3,6,4,9,7,8,14,10,13,11,12"
#密文
cipher_text = "HCBTSXWCRQGLES"
f = open(r"C:\Users\MIKEWYW\Desktop\mike.txt")  #待解密文件的绝对文件名
str_first_encry = []
for line in f:
    line = line.strip()
    str_first_encry.append(line)

key_index = key.split(",")
str_second_encry=[]
for k in key_index:
    str_second_encry.append(str_first_encry[int(k)-1])
    print(str_first_encry[int(k)-1])
for i,ch in enumerate(cipher_text):
    line = str_second_encry[i]
    split_index = line.index(ch)
    temp=[]
    temp[0:len(line)-split_index+1] = line[split_index:len(line)]
    temp[len(temp):] = line[0:split_index]
    str_second_encry[i] = "".join(temp)
print("-------------------------------------")
for plain in str_second_encry:
    print(plain)

对于待解密文件的绝对文件名就是:绝对路径+文件名
在这里插入图片描述解题步骤:
1,用文本编辑器整理
在这里插入图片描述
在这里插入图片描述
2,建立txt文本,(可修改文件名)在代码中填入绝对文件名
在这里插入图片描述3,用IDLE运行python代码:
在这里插入图片描述
在这里插入图片描述4,转换为小写,寻找flag,在倒数第六列:
在这里插入图片描述
5,提交答案:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值