0和255(Polar靶场)

发布时间 2023-12-20 08:59:19作者: ashashash

下载文件后打开

image_list.py

# -*- coding = utf-8 -*-
# @software:PyCharm
from PIL import Image
image = Image.open('flag.png')   #flag.png分辨率为33*33
width = image.width
height = image.height
image_list = []
for x in range(height):
    scanline_list = []
    for y in range(width):
        pixel = image.getpixel((y, x))
        scanline_list.append(pixel)
    image_list.append(scanline_list)
print(image_list)

大概意思就是把图片像素转成列表保存起来

 

import ast
from PIL import Image
def image_list_to_image(image_list, width, height):
    # 创建新的空白图像
    image = Image.new('RGB', (width, height))

    # 遍历image_list,并将像素设置到图像中
    for y in range(height):
        for x in range(width):
            pixel = image_list[y][x]  # 获取当前像素值
            image.putpixel((x, y), pixel)  # 设置像素值到图像中

    return image

width = 33    
height = 33

with open('C:\\Users\\Desktop\\polar\\0和255\\image_list.txt','r') as file:
    content = file.read()
image_list = ast.literal_eval(content)    #把文件内容转成对应的列表
image = image_list_to_image(image_list, width, height)
image.show()    #展示图片
image.save('C:\\Users\\Desktop\\polar\\0和255\\output.png')

运行后得到一张二维码,放进二维码工具,得到字符串

flag为Polar_Night的md5值

对Polar_Night进行md5

import hashlib

str = 'Polar_Night'
print((hashlib.md5(str.encode('utf-8'))).hexdigest())