【XCTF 攻防世界】CRYPTO 密码学 新手练习区 幂数加密

题目链接:https://adworld.xctf.org.cn/task/answer?type=crypto&number=5&grade=0&id=5120&page=1

下载附件,得到一串数字。没有头绪。查看wp

得知这是 二进制幂数加密法

百度链接: 二进制幂数加密法

从给出的一串字符可以看出,除第一组以外,每一个以0分隔的一组排列的数字都是从小到大

那么可以确定,以0分隔的每一组都是一个字符

不明白的可以举个例子:

【XCTF 攻防世界】CRYPTO 密码学 新手练习区 幂数加密_第1张图片
那么我们直接用python脚本跑一下,可以得到flag

WELLDONE

a="8842101220480224404014224202480122"
a=a.split("0")
flag=''
for i in range(0,len(a)):
     str = a[i]
     list=[]
     sum=0
     for j in str:
        list.append(j)
        length = len(list)
     for k in range(0,length):
        sum+=int(list[k])
     flag+=chr(sum+64)
print(flag)

你可能感兴趣的:(CTF刷题,密码学)