GZipはmacOSとLinuxで異なる圧縮結果を生成します。

GZipはmacOSとLinuxで異なる圧縮結果を生成します。

数千の個別のGZip圧縮ファイルがあります(もちろん、-n出力は決定的なのでフラグを渡します)。その後、Gitリポジトリに移動します。 3つのファイルについて、GzipがmacOSとLinuxで異なる出力を生成することがわかりました。例は次のとおりです。

アップルシステム

$ cat Engine/Extras/ThirdPartyNotUE/NoRedist/EnsureIT/9.7.0/bin/finalizer | shasum -a 256
0ac378465b576991e1c7323008efcade253ce1ab08145899139f11733187e455  -

$ cat Engine/Extras/ThirdPartyNotUE/NoRedist/EnsureIT/9.7.0/bin/finalizer | gzip --fast -n | shasum -a 256
6e145c6239e64b7e28f61cbab49caacbe0dae846ce33d539bf5c7f2761053712  -

$ cat Engine/Extras/ThirdPartyNotUE/NoRedist/EnsureIT/9.7.0/bin/finalizer | gzip -n | shasum -a 256
3562fd9f1d18d52e500619b4a5d5dfa709f5da8601b9dd64088fb5da8de7b281  -

$ gzip --version
Apple gzip 272.250.1

Linux

$ cat Engine/Extras/ThirdPartyNotUE/NoRedist/EnsureIT/9.7.0/bin/finalizer | shasum -a 256
0ac378465b576991e1c7323008efcade253ce1ab08145899139f11733187e455  -

$ cat Engine/Extras/ThirdPartyNotUE/NoRedist/EnsureIT/9.7.0/bin/finalizer | gzip --fast -n | shasum -a 256
10ac8b80af8d734ad3688aa6c7d9b582ab62cf7eda6bc1a0f08d6159cad96ddc  -

$ cat Engine/Extras/ThirdPartyNotUE/NoRedist/EnsureIT/9.7.0/bin/finalizer | gzip -n | shasum -a 256
cbf249e3a35f62a4f3b13e2c91fe0161af5d96a58727d17cf7a62e0ac3806393  -

$ gzip --version
gzip 1.6
Copyright (C) 2007, 2010, 2011 Free Software Foundation, Inc.
Copyright (C) 1993 Jean-loup Gailly.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by Jean-loup Gailly.

どうやってこれができますか? GZipの実装は完全に標準だと思いましたか?

修正する:ほとんどの場合、macOSとLinuxのバージョンが同じ出力を生成することを確認するために、両方のオペレーティングシステムは同じハッシュを出力します。

$ echo "Vive la France" | gzip --fast -n | shasum -a 256
af842c0cb2dbf94ae19f31c55e05fa0e403b249c8faead413ac2fa5e9b854768  -

ベストアンサー1

GZipの圧縮アルゴリズムは厳密にせん断的ではありません。詳細な説明:一部のデータでは、アルゴリズムの実装と使用されるパラメーターによっては、複数の圧縮出力がある場合があります。したがって、Apple GZipとgzip 1.6が同じ結果を返すという保証はありません。圧縮出力。これらの出力はすべて有効なGZipストリームであり、標準ではこれらの可能な各出力解凍された同じ元データに。

おすすめ記事