攻防世界 很普通的数独

编程入门 行业动态 更新时间:2024-10-11 13:25:01

<a href=https://www.elefans.com/category/jswz/34/1767336.html style=攻防世界 很普通的数独"/>

攻防世界 很普通的数独

打开题目发现是很多数独的图片,刚开始看的时候毫无思路,甚至试着把每张图片的数独填完
在填完后发现无果,在网上搜索师傅们的wp,才发现这是要把排序后观察,当我们按照5*5排序后好发现,这些很像二维码的定位图,但顺序不对,需要调整。

将图片五放到二十一图片的位置,图片二十一放到一,把一放到五,然后把有数字的涂黑,就可以得到二维码
空白处留白颜色值255,255,255,有数字的涂黑,颜色值0,0,0。就可以获得二维码
这里借助师傅们已经扒好的数字

111111101010101000101000001111110000101111111
100000101100111101010011101100011001001000001
101110101110011111010011111101000101001011101
101110101101100010001010000011110001101011101
101110100011100100001111101111111011101011101
100000101100100000011000100001110100001000001
111111101010101010101010101010101011101111111
000000000011001101001000110100110011100000000
110011100100100001111111100100101000000101111
101001001011111111101110101011110101101001100
100000111100100100000110001101001101010001010
001100010011010001010011000100000010110010000
010110101010001111110100011101001110101101111
100011000100011100111011101101100101101110001
001100110100000000010010000111100101101011010
101000001011010111110011011111101001110100011
110111110111011001101100010100001110000100000
110101000010101000011101101101110101101001100
010011111110001011111010001000011011101101100
011001011001010101100011110101001100001010010
010111111111101011111111101101101111111111100
011110001100000100001000101000100100100011110
111110101110011100111010110100110100101010010
110010001011101011101000111100000011100010000
101011111011100111101111111100001010111110010
110100011000111000100111101101111101000100010
111101111110001001000011010110001111110111110
011001010101000110010100010001000101101010001
011101110101101101100100001101101000111101001
110110001001101100010101101111110100101100110
000011100111000000000100001010101111100010010
111010010011110011101110010100001011111010010
101001100010111111110100000100001010101010100
000010011001001101110101001111100101111101101
000010111101110001101011000001000101110100110
011110011010100010100000011011000001110010000
100110100100001101111111101100101110111110011
000000001111110101101000101011100100100011010
111111100011111011011010101101110011101011110
100000101110101101101000111110010001100010001
101110101011100001111111101101001000111111011
101110100110111101101000001001101100011101101
101110100000011101100001101010110010010010001
100000101011001011111011001011000011010110000
111111101010101001111011110101101110000101101

然后编写代码,把rbg值转为图片

from PIL import Image
x = 45#设置宽为45,因为在我们提取的数字中每一列的字节长度为45
y = 46#设置高为46,因为在我们提取的数字中每一行的字节长度为45
white = 255,255,255#设置颜色值
black = 0,0,0#设置颜色值
im = Image.new("RGB",(x,y))#创建新的图片,设置宽和高
file = open('D:\\桌面\\23.txt','r')#打开图片
for i in range(0,x):line = file.readline()#读取文件内容for j in range(0,y):if line[j] == '0':im.putpixel((i,j),white)#reg的值转换成图片else:im.putpixel((i,j),black)#reg的值转换成图片
im.save("flag.png","PNG")#保存图片名为flag.png

因为最近两题都是RGB颜色值转图片获取flag,所有也一起学习了一些PIL库函数的使用
最后得到图片,因为图片的高和宽太小,二维码有些看不清楚,点击编辑二维码,出现清楚的图片,点击另存为,然后使用工具CQR扫描得到一串base64编号
编写代码解码base64

import base64
def b64encode():#定义一个加密函数a = input("base64加密:")#input()函数接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。encode = base64.b64encode(a.encode('utf-8'))#因为3.x中字符都为unicode编码,而b64encode函数的参数为byte类型,所以必须先转码print(("**********encryption complete**********\n:"),str(encode,'utf-8'))#将byte转换回去就好了,如果不转化,输出结果会被字符串b包围return "****************************************"def b64decode():#定义一个解码函数b = input("base64解码:")    decode = base64.b64decode(b)               print(("**********Decoding complete**********\n:"),str(decode,'utf-8')) return "****************************************"a = 0
while a == 0:#设置第一个循环print("<<< 选择 >>>\n--加密--\n--解码--\n--退出--")user = input(":")while (user !='加密' and user !='解码' and user != "退出" ):#设置第二个循环,设置循环条件如果不等于这些条件                                     print("输入错误!请重新输入:")                           #就一直会在 print("输入错误!请重新输入:")循环user=input(":")if user == '加密':#如果输入的字符等于加密就执行下一个条件,进行加密c = b64encode()print(c)if user == '解码':#如果输入的字符等于解码就执行下一个条件,进行解码b = b64decode()print(b)if user == '退出':#输入退出则跳出循环,退出程序break
print("已退出")

多次解码得flag

更多推荐

攻防世界 很普通的数独

本文发布于:2024-03-10 10:50:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1727776.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:攻防   数独   世界

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!