普通的二维码
解压文件夹是一个二维码
扫描得到
用010 Editor十六进制文本编辑器打开发现一串数字(仅有0-7,推测是八进制)
146154141147173110141166145137171060125137120171137163143162151160164137117164143137124157137124145156137101163143151151041175
8进制转十进制在转ASCII码
python简单代码写
def oct2ascii(octal_str): """ 八进制字符串转ASCII字符 :param octal_str: 纯数字的八进制字符串(仅含0-7) :return: 解码后的ASCII字符串 """ # 步骤1:补前导0,确保总长度是3的倍数(方便按3位分组) # 计算需要补的0的数量:(3 - 长度%3) %3 避免长度刚好是3的倍数时补3个0 pad_num = (3 - len(octal_str) % 3) % 3 padded_octal = '0' * pad_num + octal_str # 前补0(避免后补0导致错位) # 步骤2:按3位分组,逐组转换 result = '' for i in range(0, len(padded_octal), 3): # 取3位八进制子串 octal_char = padded_octal[i:i+3] # 步骤3:八进制→十进制(ASCII码值) decimal_code = int(octal_char, 8) # 步骤4:十进制→ASCII字符 char = chr(decimal_code) result += char return result # 你的原始八进制长串 original_octal = "146154141147173110141166145137171060125137120171137163143162151160164137117164143137124157137124145156137101163143151151041175" # 解码并输出 decoded_str = oct2ascii(original_octal) print("解码结果:", decoded_str)2.随波逐流解
8进制特点
八进制只有 8 个基本数字:0、1、2、3、4、5、6、7
八进制数的每一位,都要先乘它所在位置的 8 的幂次,再把所有位的结果相加,才能得到对应的十进制数
Eg:17
从右边开始
第一位:8的零次方是1*7=7
第二位:8的一次方是8*1=8
所以17的十进制是7+8=15
十进制在转ASCII码
薛定谔的猫
点击,不要解压,会看见这个python代码
运行,密码点Enter键
代码里通过pwd.strip() == ''判断 “密码为空”,
- 用户输入密码时直接按回车键(输入内容为空字符串
'');
查看flag.txt:flag{sometimes_taking_a_break_is_also_a_good_choice}