【问题标题】:Python zlib compression & decompressionPython zlib 压缩和解压
【发布时间】:2021-08-08 16:15:27
【问题描述】:

我有一个使用output = zlib.decompress(string) 成功解压缩的base45 解码字符串,其中string 是:

b'x\xda\xbb\xd4\xe2\xbb\x88\xc5C\xe9l\xe7\xb6\xcd\x9dm\x9a\x8cj\x0b"\x19\xf9\x97\xb0H%]6y\xc0&\x95\xf0\x837\x9b1\xc91\xc4\x92\x91y!\xe3\x92\xc4\xb2\xc6UI)y\x8cI\xb9\x89\xb9\xfeA\xee\xba\x86\x06\x06\x06\xc6\x06F\x86\xa6Ie\x05\xe9^\x06\xe6N\x11\x06\xc6I)%YF@1]\x03s]#\xc3\xa4\xe4|\xa0\xee\xa4\xe4\xcc\n\xad\xd0 ?\xab\xd00gO+\x03C+\xc7\x10+\xd7\xa80\x13\xaf /\xe3p\xf7p\x93pw\x8b0O\xe3\xf0p3g\x13KSe\xcf\xa4\xdc\x82\x1c\xd7P}C}#\x03}CS#\x8b\xa4\xcc\xe2\ni\xdf\xcc\xbc\xcc\xe2\x92\xa2J\x85\xfc4\x05\x8f\xd4\xc4\x9c\x92\x0c\x1d\x05\xc7R\xa0HfbRq\nSRIz\xa6\x85\x89\x81\xa9\xb1\xa5\x81\x81Yr^b\xee\x92\xe4\xb4\xbc\x924\'\x1fWO\xd7\xa0\xa4\xb4\xbc4\xa7\x9c\xd4\xcc\xd4\xa2\xe4\xf4\xbc\x92,_\xc7\x08O_O\x1fOG\xbf\xa4\xf4\xbc,\xdf\xc4\x8a\xcc\xdc\xcc\x9c\xcc\xc4\xbc\xe4\xb2\xd4\xa2TC=c=\x83\xe4\x94\xfc$\xa0/\x0c\x80\xbe\xb0\xd454\x8ep\xe8K\xf7\xf1x\xb9Q\xfc\xc2\x93\x86\x8d\xc5\x99\xba7\xb4\x98\xe4\xe7d\xder2\xd4\xd457\xd8\xd2X3a\x8a\xa8\x91\xb4e_\xe9\x8e\x9ai\xfaj=V\x17\x9c"\xcaR\xb8Um\xf2\x1dN\xdf\x96\x93xzs\xf3\xa9\xbb\x00\x1c[z\x03x\xda\xbb\xd4\xe2\xbb\x88\xc5C\xe9l\xe7\xb6\xcd\x9dm\x9a\x8cj\x0b"\x19\xf9\x97\xb0H%]6y\xc0&\x95\xf0\x837\x9b1\xc91\xc4\x92\x91y!\xe3\x92\xc4\xb2\xc6UI)y\x8cI\xb9\x89\xb9\xfeA\xee\xba\x86\x06\x06\x06\xc6\x06F\x86\xa6Ie\x05\xe9^\x06\xe6N\x11\x06\xc6I)%YF@1]\x03s]#\xc3\xa4\xe4|\xa0\xee\xa4\xe4\xcc\n\xad\xd0 ?\xab\xd00gO+\x03C+\xc7\x10+\xd7\xa80\x13\xaf /\xe3p\xf7p\x93pw\x8b0O\xe3\xf0p3g\x13KSe\xcf\xa4\xdc\x82\x1c\xd7P}C}#\x03}CS#\x8b\xa4\xcc\xe2\ni\xdf\xcc\xbc\xcc\xe2\x92\xa2J\x85\xfc4\x05\x8f\xd4\xc4\x9c\x92\x0c\x1d\x05\xc7R\xa0HfbRq\nSRIz\xa6\x85\x89\x81\xa9\xb1\xa5\x81\x81Yr^b\xee\x92\xe4\xb4\xbc\x924\'\x1fWO\xd7\xa0\xa4\xb4\xbc4\xa7\x9c\xd4\xcc\xd4\xa2\xe4\xf4\xbc\x92,_\xc7\x08O_O\x1fOG\xbf\xa4\xf4\xbc,\xdf\xc4\x8a\xcc\xdc\xcc\x9c\xcc\xc4\xbc\xe4\xb2\xd4\xa2TC=c=\x83\xe4\x94\xfc$\xa0/\x0c\x80\xbe\xb0\xd454\x8ep\xe8K\xf7\xf1x\xb9Q\xfc\xc2\x93\x86\x8d\xc5\x99\xba7\xb4\x98\xe4\xe7d\xder2\xd4\xd457\xd8\xd2X3a\x8a\xa8\x91\xb4e_\xe9\x8e\x9ai\xfaj=V\x17\x9c"\xcaR\xb8Um\xf2\x1dN\xdf\x96\x93xzs\xf3\xa9\xbb\x00\x1c[z\x03'

现在我想用zlib.compress(output) 逆向解压以取回原始字符串。但是输出不一样:

b'x\x9c\xbb\xd4\xe2\xbb\x88\xc5C\xe9l\xe7\xb6\xcd\x9dm\x9a\x8cj\x0b"\x19\xf9\x97\xb0H%]6y\xc0&\x95\xf0\x837\x9b1\xc91\xc4\x92\x91y!\xe3\x92\xc4\xb2\xc6UI)y\x8cI\xb9\x89\xb9\xfeA\xee\xba\x86\x06\x06\x06\xc6\x06F\x86\xa6Ie\x05\xe9^\x06\xe6N\x11\x06\xc6I)%YF@1]\x03s]#\xc3\xa4\xe4|\xa0\xee\xa4\xe4\xcc\n\xad\xd0 ?\xab\xd00gO+\x03C+\xc7\x10+\xd7\xa80\x13\xaf /\xe3p\xf7p\x93pw\x8b0O\xe3\xf0p3g\x13KSe\xcf\xa4\xdc\x82\x1c\xd7P}C}#\x03}CS#\x8b\xa4\xcc\xe2\ni\xdf\xcc\xbc\xcc\xe2\x92\xa2J\x85\xfc4\x05\x8f\xd4\xc4\x9c\x92\x0c\x1d\x05\xc7R\xa0HfbRq\nSRIz\xa6\x85\x89\x81\xa9\xb1\xa5\x81\x81Yr^b\xee\x92\xe4\xb4\xbc\x924\'\x1fWO\xd7\xa0\xa4\xb4\xbc4\xa7\x9c\xd4\xcc\xd4\xa2\xe4\xf4\xbc\x92,_\xc7\x08O_O\x1fOG\xbf\xa4\xf4\xbc,\xdf\xc4\x8a\xcc\xdc\xcc\x9c\xcc\xc4\xbc\xe4\xb2\xd4\xa2TC=c=\x83\xe4\x94\xfc$\xa0/\x0c\x80\xbe\xb0\xd454\x8ep\xe8K\xf7\xf1x\xb9Q\xfc\xc2\x93\x86\x8d\xc5\x99\xba7\xb4\x98\xe4\xe7d\xder2\xd4\xd457\xd8\xd2X3a\x8a\xa8\x91\xb4e_\xe9\x8e\x9ai\xfaj=V\x17\x9c"\xcaR\xb8Um\xf2\x1dN\xdf\x96\x93xzs\xf3\xa9\xbb\x00\x1c[z\x03'

这是我的代码:

zlibdata = base45.b45decode(data1)
cbordata = zlib.decompress(zlibdata)
print(zlibdata)
print("-----------------")
compressedData = zlib.compress(cbordata)
print(compressedData)

我做错了什么?

【问题讨论】:

  • “我做错了什么?” - 期望它应该是一样的?

标签: python zlib base45


【解决方案1】:

如果你可以解压compressedData 并得到准确的cbordata 回来,那么你没有做错任何事。唯一错误的是您期望或希望获得相同的压缩数据。

无损压缩器可确保压缩后解压缩会返回完全相同的结果。然而,no 保证并且 no 期望解压后压缩会返回相同的结果。

相同的压缩代码具有不同的压缩级别或不同的设置将给出不同的输出。具有相同设置的不同版本的压缩代码可以提供不同的输出。不同的压缩库会给出不同的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多