开启环境,什么东西?只有一个文件???那就先下载下来看看
73E-30U1&>V-H965S95]I<U]P;W=E<GT`
这样一串字符,没有网页,只有文件,那肯定是用某种加密方式加密之后的结果。但是这个形式的加密是真没见过,才疏学浅,只能先上网取经了。
看了这篇大佬的文章
大佬说是UUencode编码,先去找个解码器试试。
成功拿到flag,大佬诚不欺我,那就去先学习学习UUencode编码是什么。
UU编码是乱码算法之一,他会将三字节的BIN数据转换成四字节可打印的ascll字符。
uuencode 编码方式用于将任意的二进制文件转换为文本文件,比如email.转换后的文件中仅包含可打印字符.
uuencode 运算法则将连续的 3字节编码转换成 4字节(8-bit 到 6-bit)的可打印字符.
下面是我看的几篇文章
三.乱码算法大全
四.UU编码简介
这里再放一个大佬给的UUencode的python脚本
def uuencode(): str = input("请输入需要编码的字符:") data = "" # 将字符串中的每个字母以二进制的形式变成ASCALL码 for c in str: a = format(ord(c), 'b') for i in range(8 - len(a)): # 如果a的长度不够8,就会一直循环,补0 a = "0" + a data = data + a # 然后将a加到data if len(data) % 24 != 0: length = len(data) for i in range(24 - length % 24): data = data + "0" print(chr(32 + int(len(data) / 8)), end="") for i in range(0, len(data), 24): data_1 = data[i:i + 24] for j in range(0, len(data_1), 6): if int(data_1[j:j + 6], 2) == 0: print(chr(int(0x60))) else: print(chr(int(data_1[j:j + 6], 2) + 32), end="") def uudecode(): str = input("请输入需要解码的字符:") data = "" for c in str[1:]: # 不需要第一个字符 a = format(ord(c) - 32, 'b') # ASCALL码先减去32再转换为二进制 for i in range(6 - len(a)): # 如果二进制不到六位,用“0”在字符串前面补齐 a = "0" + a data = data + a for i in range(0, len(data), 24): data_1 = data[i:i + 24] # 每24位截取一次 for j in range(0, len(data_1), 8): # 二十四个中每八个截取 print(chr(int(data_1[j:j + 8], 2)), end="") if __name__ == "__main__": uudecode() print() uuencode()
标签:24,编码,SWPUCTF,len,range,2021,print,data,crypto8 From: https://www.cnblogs.com/karasbai/p/18370047