你喜欢下棋吗-Bugku

你喜欢下棋吗

题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
压缩文件需要密码解密
根据提示应该是棋盘密码

解密

棋盘密码是一个矩阵:下标从1开始
在这里插入图片描述
所以密文两两一组进行解密:

# 棋盘密码
def qiPan():
    cy="4423244324433534315412244543"
    dic=[
        ['a','b','c','d','e'],
        ['f','g','h','i/j','k'],
        ['l','m','n','o','p'],
        ['q','r','s','t','u'],
        ['v','w','x','y','z']
    ]
    res=['']
    for i in range(0,len(cy),2):
        c=dic[int(cy[i])-1][int(cy[i+1])-1]
        length=len(res)
        if c=='i/j':#不考虑效率了
            for i in range(0,length):
                res.append(res[i]+'i')
                res[i]+='j'
        else:
            for i in range(length):res[i]+=c
    print(res)
    pwd=extract(res)
    return pwd
#压缩包解密
import zipfile,rarfile,time

def extract(res):
    path=input("压缩包路径:")
    start_time = time.time()
    name=path.split('\\')[-1]
    name=name.split('/')[-1]
    if name.endswith('.zip'):
        zfile=zipfile.ZipFile(path)
    elif name.endswith('.rar'):
        zfile=rarfile.ZipFile(path)
    for pwd in res:
        try:
            zfile.extractall(pwd=pwd.encode('utf-8'))
            print ("当前压缩密码为:",pwd)
            end_time = time.time()
            print ('单线程破解压缩包花了%s秒'%(end_time-start_time))
            return pwd
        except Exception as e:
            pass
#主函数
if __name__ == '__main__':
    print("/*Begin*\\")
    pwd=qiPan()
    print(pwd.lower())

结果为:
在这里插入图片描述
解压密码为:thisispolybius
解压的:
在这里插入图片描述
博多密码!
懒得写字典了
博多密码解密链接
结果为:
BAUD0TC0DE
在这里插入图片描述

换成小写:baud0tc0de
在这里插入图片描述
注意0和o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值