第七届全国残疾人职业技能大赛样题-网络安全-这个厉害了
前言
把明文转换为16进制编码的步骤如下:
- 将明文中的每个字符转换为其对应的ASCII码。
- 将ASCII码转换为16进制编码。
例如,如果明文为”Hello”,则转换为16进制编码后为”48656C6C6F”。
将16进制编码转换为10进制数的步骤如下:
- 将16进制编码每两个字母分组。
- 将每个字母转换为其对应的10进制数。
- 将每组字母转换后的10进制数相加,得到最终的10进制数。
例如,对于转换后的16进制编码”48656C6C6F”,将其每两个字母分组为”48”,”65”,”6C”,”6C”,”6F”。将每组字母转换为10进制数得到”72”,”101”,”108”,”108”,”111”。将这些数相加,得到最终的10进制数为”500”。
一、这个厉害了
1.打开题目
2.解题
题目给了一个py脚本和一个密文文件,py脚本将明文转换为密文,现在需要将密文文件中的密文解密得到明文。
1 | flag = '[censored]' |
很明显加密流程为将明文转换为16进制编码,在转化为10进制数,将每两位数字构成的数进行FAN函数运算,再拼接起来得到密文。
因此解密流程为:将0~99利用FAN函数求得加密值,建立加密值–>原数的字典,在明文中查字典拼接得到10进制数,转化为16进制数,再求取字符串。代码如下:
1 | xxx={} #字典 |
得到明文为SIS{a9ab115c488a311896dac4e8bc20a6d7},根据算法还缺一位字母,加上题目来自ASIS(一个伊朗的CTF比赛),故key应该为ASIS{a9ab115c488a311896dac4e8bc20a6d7}。
不过该题存储的答案是SIS{a9ab115c488a311896dac4e8bc20a6d7}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sword技术分享!
评论