错误的头检查 zlib python

问题描述 投票:0回答:1

我正在从一个API中提取数据,该API解释说它是用gzip编码成base64的。所以我写了这段代码来尝试并提取它。

import base64
import zlib

encoded_data = "H4sIAAAAAAAAAE1SS3KbQBBt+ZMgVSpeJAcYVzmrFDYgIyRXeaGSsMERYNlYsrRJDczwsQZQ8YkEd8g5dIGcQAdLZeRVFr3o9+meN9UdgDa04g4AnPA6gqOYtH634HSUVWnZ6sBxicNjaBsxoXcMhwUX/e1A53lVMeZsUpoLcGQSuFCwopJAVcUB9QZiV5N6IiaSLKpE0YjU8+Se3+W+xzxb07yMadEGoaTbssppcdjeEuB0hllF4Q+tH6TlaySR1wfm12aP9+6zxBzzba2Z6az2RmbPTDhvDHuTevCfVi3xXGWL7kO0TKeVl8ykSfeJUeNJ9pOXX5a7aJzxVHHmuuy47G05nyV2Y27s5qWxm8XGakzJudfVxdzcWvNlYrur7TKZci6Kl3NdshtLXrxZkp3o3WVyx5zxqjFTeRBMb295gg58JHGxZrhuw8kky6nAQQG+7neaQTEroxu03+HvioSMR86cc3yCa0TDsECbiKaozipUpBSvzpGBC4ThG5f4WcZItklRFhzs3M3BgvpZSopLNGRF9i7LKal8WqAAM4YITnBIkVcfHOqldBBc8pUH637Xd6O4QHFJE+TjFHkU5TTI8pCSc/iy3wX7HRs5luXYyNAnlu4KcGLjhMIZ50ZR7K/4U3kgwgOf6dsyx8OyzGOvKmkhQDvL4zBOXRzC5+mLOfrxc/Q0vHNN+144nBZ8Ghkc1O2fhj4c88lVxcELtd8feP1+T6SDQBGvZSkQPS/QROpT4imep9FA4bPLOKFFiZM1nKlXsnbFP6N/c62hoXW43A/j99hwDPAPeovoHtYCAAA="
decoded_data = zlib.decompress(base64.b64decode(encoded_data))

decoded_string = decoded_data.decode("utf-8")

File_object = open(r"test.nbt", "Access_Mode")
File_object.write(decoded_string)
File_object.close()

问题是:

zlib.error: Error -3 while decompressing data: incorrect header check

我在网上看到有可能是密钥不对,但网上的人都说这是正确的方法。如果不是,你能帮我用正确的方法解密吗?

python encryption base64 gzip zlib
1个回答
0
投票

这的确是 gzip 数据,所以你需要告诉我们 decompress 那。试试 zlib.decompress(base64.b64decode(encoded_data), wbits=31). 否则它试图将其解释为一个zlib流,但它不是。

© www.soinside.com 2019 - 2024. All rights reserved.