接口测试 python 接口测试:字符串 (非文件) gzip 压缩之后的读取问题

王理发修车铺 · 2017年12月17日 · 最后由 王理发修车铺 回复于 2017年12月19日 · 1761 次阅读

开发给的接口对传输数据要求封包,其中有一系列的加密过程,其中涉及先 gzip 压缩、AES ECB128 加密,但是这里有 1 个问题:若是用 data = gzip.GzipFile(fileobj=buf),如何读取压缩后的字符?(因为 AES ECB128 加密函数参数必须是 plaintext),我尝试过直接用 read()方法,但是会报错 “Not a gzipped file”,求大神指教(我用的 2.7 的 python)!

部分代码:

#coding=utf-8

from StringIO import StringIO
import gzip

def gzip_data(str):
    buf = StringIO(str)
    data = gzip.GzipFile(fileobj=buf)
    #read(),readline(),readlines()都试过,都不行;
    return data.read()

if __name__ == '__main__':
    data = raw_input('input a string:\n')
    g_data = gzip_data(data)

求大神指教!

共收到 5 条回复 时间 点赞

有了解的么?

开发是怎么实现对 gzip 加密的,模仿一下😁

Vin 回复

开发是用 PHP 封装函数的。。。

chen 回复

首先我是压缩字符串,并不是文件,然后我压缩之后还需要 aes 加密,所以不能直接解压。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册