幂数加密(攻防世界)

写在前面:

原题:传送门

题目如下:

附件内容:

是一个文本文档:

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

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

写在后面:

相关推荐
恣睢s3 分钟前
BugKu——Simple SQL injection
网络安全
HackTwoHub5 小时前
REA逆向一切!渗透逆向新利器、MCP 驱动全栈逆向方案,解析原生二进制、EXE、APK,高效挖掘程序底层漏洞
网络·安全·web安全·网络安全·系统安全
小趴菜一只5 小时前
SIEM-wazuh安装过程
运维·windows·安全·网络安全
看着博客敲代码5 小时前
searchsploit illegal option -- - 与 Exploit-DB 本地漏洞检索排查
安全·网络安全·系统安全
躺柒6 小时前
读数据安全架构设计与实践03身份认证(上)
网络安全·信息安全·数据安全·安全架构·身份认证
刘婉晴7 小时前
【Metasploit渗透测试魔鬼训练营】初识Metasploit
网络安全
孙克旭_7 小时前
信息收集-域名和端口信息
网络安全
QZ1665609515919 小时前
金融数据流转监测排行:从看见到拦截的距离
网络·安全·网络安全·金融
看着博客敲代码20 小时前
WorkBuddy 接上 Kali MCP 做自动化渗透:信息收集到初步验证的落地记录
linux·人工智能·安全·网络安全·自动化
学逆向的1 天前
C 突破编译器限制
c语言·开发语言·网络安全