题目描述
题目为一个 crypto.zip的压缩包,解压后得到 python 文件及加密后的文本文件
代码分析
ciphertext
中的字符串如下,长度为 56
cb20dc31e87acbcbf3e2191aa3f3a99219701a52d11a6adcd12624af
分析 Python 文件的加密算法,找到生成 ciphertext
的代码块
ciphertext = ''
for each in flag:
for i in range(0,len(key)/2):
# ord() 返回一个字符十进制的 ascii 码值
temp = (ord(key[i \* 2]) \* ord(each) + ord(key[ i\*2 + 1])) % 251
ciphertext += '%02x' % temp
分析 ciphertext 的生成过程
ciphertext
通过追加 temp
得到,每次取 temp
的前两位并转换为16进制,并且 ciphertext
赋值的部分没有写在 for i
这个循环中。
所以每遍历到 flag
的一个字符,ciphertext
就追加一次,且每次追加的都是for i
循环最后一次的结果。
所以 temp
的算法可以简化为
temp = (x * flag中的每个字符的十进制ascii码值 + y) % 251
根据 flag
的格式, ciphertext
中 cb
由 f
计算得到,20
由 l
计算得到
flag = ‘flag{----unkown-----}’
获取 flag
由于取余算法不可逆,所以我们采用爆破的方式,爆破得到可能存在的 x
与 y
组合,并保存到文件中,x
与 y
的范围选取 ascii 码表中的字符部分(32~126)
with open ('1.txt', 'w'):
pass
with open ('2.txt', 'w'):
pass
temp1 = int('cb', 16)
for x in range(32,126):
for y in range(32,126):
if (x\*102 + y) % 251 == temp1:
with open('1.txt', 'a') as f1:
f1.write(f"{x}\t{y}\n")
temp2 = int('20', 16)
for x in range(32,126):
for y in range(32,126):
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/3a24be70d08546af3ce28bb0f121dd31.png)
![img](https://img-blog.csdnimg.cn/img_convert/c4719e0529a42da85fca835164f6589e.png)
![img](https://img-blog.csdnimg.cn/img_convert/46506ae54be168b93cf63939786134ca.png)
![img](https://img-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)
![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)
![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**
**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**
<img src="https://img-community.csdnimg.cn/images/fd6ebf0d450a4dbea7428752dc7ffd34.jpg" alt="img" style="zoom:50%;" />