【问题标题】:Incorrect header check zlib python不正确的标头检查 zlib python
【发布时间】:2020-06-11 11:22:36
【问题描述】:

我正在从一个 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

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

【问题讨论】:

  • 嗯,是zlib还是gzip?它们是不同的格式和不同的 python 包。使用 gzip 包。

标签: python encryption base64 gzip zlib


【解决方案1】:

确实是gzip数据,所以你需要告诉decompress。试试zlib.decompress(base64.b64decode(encoded_data), wbits=31)。否则,它会尝试将其解释为 zlib 流,但事实并非如此。

【讨论】:

    猜你喜欢
    • 2015-09-21
    • 2015-05-29
    • 2015-09-25
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多