开发给的接口对传输数据要求封包,其中有一系列的加密过程,其中涉及先 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)

求大神指教!


↙↙↙阅读原文可查看相关链接,并与作者交流