【发布时间】:2019-04-08 22:18:54
【问题描述】:
我遇到了一个问题,涉及使用 GET_key 从服务器检索字符串,然后解压缩它。过了一会儿,我发现这是 gzip 压缩,但我的 python 代码有问题。这是我的问题:
编写一个可以连接到以下服务器的脚本:'localhost',10000 通过 TCP 发送 GET_KEY 以下载字符串。该字符串使用许多网站中的通用算法进行压缩。解压字符串,打印出来得到flag。
我的代码的第一部分工作正常:
import socket
import gzip
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 10000))
s.sendall("GET / HTTP/1.1\r\nHost: localhost\r\n\r\n")
data = s.recv(4096)
并产生结果:
ƫ\ OQHKU(HUHILW,Rt r
5
vR|)&
但是,当我尝试解压缩它时,我遇到了错误。这是我的完整代码:
import socket
import gzip
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 10000))
s.sendall("GET / HTTP/1.1\r\nHost: localhost\r\n\r\n")
data = s.recv(4096)
fil =gzip.GzipFile(data)
print (fil.read())
这会产生错误说明:TypeError: file() argument 1 must be encrypted string without null bytes, not str
查找这个错误并没有给我任何与我的具体问题相关的信息,所以我一定是做错了什么,而且我不能使用gzip.decompress
当我使用python 2.7时,如何解压字符串而不发生任何错误?
【问题讨论】:
标签: python python-2.7 sockets compression gzip