幂数加密(攻防世界)

写在前面:

原题:传送门

题目如下:

附件内容:

是一个文本文档:

8842101220480224404014224202480122

题目标题提示我们说 是 幂数加密解析如下:

幂数加密

幂数加密是一种基于二进制幂次表示法的加密方法。由于英文字母只有26个字母,通过使用2的0、1、2、3、4、5次幂可以表示31个单元。通过用二进制幂数表示字母序号数来加密。

加密过程

在幂数加密中,每个字母的序号可以用2的幂次表示。例如:

  • 字母D的序号是4,可以表示为2^2,因此加密后为2。

  • 字母O的序号是15,可以表示为2^0 + 2^1 + 2^2 + 2^3,因此加密后为0123。

例如,明文 "do not pull all your eggs in one basket" 的字母序号为:

4 15 14 15 20 16 21 12 12 1 12 12 25 15 21 18 5 7 7 19 9 14 15 14 5 2 1 19 11 5 20

加密后的密文为:

2 0123 123 0123 24 4 024 23 23 0 23 23 034 0123 024 14 02 012 012 014 03 123 0123 123 02 1 0 014 013 02 24

解密过程

解密时,可以将密文按照0分隔符分成若干小块,然后将每个小块中的数字相加,得到对应的字母序号。例如:

密文:8842101220480224404014224202480122

分块:88421 0122 048 02244 04 0142242 0248 0122

将每个小块中的数字相加,得到:

23 5 12 12 4 15 14 5

对应的字母为:

W E L L D O N E (剧透一下 其实这个就是 flag (●´ω`●)ゞ)

我们根据文档所给的内容 按照 方法先照0分开 得到

88421 0 122 0 48 0 2244 0 4 0 142242 0 248 0 122

再将每个小块中的数字相加 得到

23 5 12 12 4 15 14 5

最后 根据每个数字对应的字母 得到

WELLDONE

再根据题目要求 得到答案为:

cyberpeace{WELLDONE}

还有一种解法是:

因为提示是八位大写字母,又发现有7个0,所以我们可以猜想分成8段 然后用python脚本来实现

python 复制代码
a=["88421","0122","048","02244","04","0142242","0248","0122"] 
flag="" 
for j in range(0,len(a)): 
    str = a[j] 
    list=[] 
    sum=0 
    for i in str: 
        list.append(i) 
        length = len(list) 
    for i in range(0,length): 
        sum+=int(list[i]) 
    flag+=chr(64+sum) 
print flag

整理不易,头发掉了几根。觉得有收获的话,点个赞关注一下呗? 我保证,我的主页里还有更多让你头发比你掉得还多的好东西!

写在后面:

相关推荐
qq_459234422 天前
【题库】| 商用密码应用安全性评估从业人员考核题库(四十)
职场和发展·密码学·学习方法·考核·商用密码·商用密码应用安全性评估·密评
一名优秀的码农2 天前
vulhub系列-14-Os-hackNos-1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
努力的lpp2 天前
SQLMap CTF 常用命令全集
数据库·web安全·网络安全·sql注入
努力的lpp2 天前
SQL 报错注入
数据库·sql·web安全·网络安全·sql注入
岛屿旅人2 天前
2025年中东地区网络安全态势综述
网络·安全·web安全·网络安全
努力的lpp2 天前
【ctf常用备用文件名字典】
web安全·网络安全·ctf
Mikowoo0072 天前
渗透测试_漏洞利用
网络安全
啥都想学点2 天前
pikachu靶场——Cross-Site Scripting-1(Kali系统)
网络安全
F1FJJ2 天前
基于网络隐身的内网穿透
网络协议·网络安全·go
苏天夏2 天前
Passport 插件:Typecho 密码安全的技术守护者
安全·网络安全·php