【发布时间】: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