ZipファイルのCRC-32計算を検証する方法

E235:

ZIPファイルのCRC-32チェックサムが正しいことを確認したい。
私は、ZIPファイルでCRC-32データがバイト14から17にあると読みました。

Offset  Bytes   Description[30]
0        4  Local file header signature = 0x04034b50 (read as a little-endian number)
4        2  Version needed to extract (minimum)
6        2  General purpose bit flag
8        2  Compression method
10       2  File last modification time
12       2  File last modification date
14       4  CRC-32 of uncompressed data
18       4  Compressed size
22       4  Uncompressed size
26       2  File name length (n)
28       2  Extra field length (m)
30       n  File name
30+n     m  Extra field  

私が作成した単純なZIPファイルのCRC-32チェックサムを検証したかったのです。

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
-----------------------------------------------
50 4B 03 04 14 00 00 00 00 00 38 81 1C 51 4C 18  | PK........8..QL.
C7 8C 02 00 00 00 02 00 00 00 07 00 00 00 31 32  | nj............12
33 2E 64 61 74 73 73 50 4B 01 02 14 00 14 00 00  | 3.datssPK.......
00 00 00 38 81 1C 51 4C 18 C7 8C 02 00 00 00 02  | ...8..QL.nj.....
00 00 00 07 00 00 00 00 00 00 00 01 00 20 00 00  | ............. ..
00 00 00 00 00 31 32 33 2E 64 61 74 50 4B 05 06  | .....123.datPK..
00 00 00 00 01 00 01 00 35 00 00 00 27 00 00 00  | ........5...'...
00 00                                            | ..

CRC-32は次のとおりです。この CRC-32オンライン計算機0x4C18C78C
に行って、ファイルから次の非圧縮行を追加しました。

50 4B 03 04 14 00 00 00 00 00 38 81 1C 51

これが結果です:

Algorithm           Result      Check       Poly            Init        RefIn   RefOut  XorOut     
CRC-32              0x6A858174  0xCBF43926  0x04C11DB7  0xFFFFFFFF      true    true    0xFFFFFFFF
CRC-32/BZIP2        0xE3FA1205  0xFC891918  0x04C11DB7  0xFFFFFFFF      false   false   0xFFFFFFFF
CRC-32C             0xB578110E  0xE3069283  0x1EDC6F41  0xFFFFFFFF      true    true    0xFFFFFFFF
CRC-32D             0xAFE2EEA4  0x87315576  0xA833982B  0xFFFFFFFF      true    true    0xFFFFFFFF
CRC-32/MPEG-2       0x1C05EDFA  0x0376E6E7  0x04C11DB7  0xFFFFFFFF      false   false   0x00000000
CRC-32/POSIX        0xFF9B3071  0x765E7680  0x04C11DB7  0x00000000      false   false   0xFFFFFFFF
CRC-32Q             0x79334F11  0x3010BF7F  0x814141AB  0x00000000      false   false   0x00000000
CRC-32/JAMCRC       0x957A7E8B  0x340BC6D9  0x04C11DB7  0xFFFFFFFF      true    true    0x00000000
CRC-32/XFER         0xA7F36A3F  0xBD0BE338  0x000000AF  0x00000000      false   false   0x00000000  

ただし、次のいずれにも該当しません0x4C18C78C

何が悪いのですか?ZIPのCRC-32は、以前のすべてのバイト(0〜13)の計算です。

pmqs:

オンラインCRC計算機に対して実行しているバイトシーケンスは、非圧縮バイトではありません。

50 4B 03 04 14 00 00 00 00 00 38 81 1C 51

これらのバイトは、zipファイルの最初の数バイトです。zip内のCRC32値は、完全な非圧縮ペイロードに対してCRC32アルゴリズムを実行することによって計算されます。あなたの場合、ペイロードは2バイトのシーケンス「ss」です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

ファイルを検証するための明確な方法

既存のzipファイルにファイルを追加する

複数の画像ファイルのzipファイルを作成する方法

Androidでファイルのサイズを計算する方法

System.IO.Compressionを使用したzipファイルの検証

バッファを使用してPythonのバイナリファイルのCRC / CRC32ハッシュ/チェックサムを計算します

ファイルの行数を計算する方法は?

既存のZIPファイルにファイルを追加する

ゼロで満たされたバッファ/ファイルのCRC32計算

10x10相互検証を使用する場合のROCの計算方法は?

eslintでVSCodeのAdobeExtendscript(.jsx)ファイルを検証する方法

ファイルの配列を検証する方法は?

マルチクラスの複数のスコアを使用して相互検証を計算する方法は?

計算されたプロパティの検証を検証する

証明書署名要求の署名を手動で計算して検証する方法

特異性を計算するための相互検証の使用

sklearnの相互検証の各モデルで特徴の重要性を計算する方法

リストの値を使用して、pydantic BaseModelの計算を検証する方法は?

偽のcrc32(ファイルの最後に4バイトを追加)

複数のzipファイルで文字列を検索する

.desktopファイルを検証/検証する方法は?

zf2でフォーム検証後に計算値を入力する方法

ZIPファイルで使用されているものと同じCRCを計算するCLIユーティリティはありますか?

CRC32のファイルを読み取る

ファイル名を無視したCRC計算(Python 3.5)

Zipファイル内にあるZipファイル内のファイルの内容を読み取る方法

ファイル(コンテンツ)のCRCを計算する

ファイルの検証を停止するPythonの方法

バックアップZIPファイルを検証する

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    Railsで宝石のレイアウトを使用するにはどうすればよいですか?

  3. 3

    Chromeウェブアプリのウェブビューの高さの問題

  4. 4

    Ansibleで複数行のシェルスクリプトを実行する方法

  5. 5

    アンドロイド9 - キーストア例外android.os.ServiceSpecificException

  6. 6

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  7. 7

    CSSのみを使用して三角形のアニメーションを作成する方法

  8. 8

    Google Playストア:アプリページにリーダーボードと実績のアイコン/バッジが表示されない

  9. 9

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  10. 10

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  11. 11

    Windows 7では、一部のプログラムは「ビジュアルテーマを無効にする」レジストリ設定を行いませんか?

  12. 12

    Get-ADGroupMember:このリクエストのサイズ制限を超えました

  13. 13

    Pyusb can't find a device while libusb can

  14. 14

    MySQLでJSON_LENGTHとJSON_EXTRACTを組み合わせる方法は?

  15. 15

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  16. 16

    Swiftのブロックのパラメーターに関するドキュメントのマークアップ形式は何ですか?

  17. 17

    Reactでclsxを使用する方法

  18. 18

    追加後、ブートストラップマルチセレクトがテーブルで機能しない

  19. 19

    MongoDB Compass: How to select Distinct Values of a Field

  20. 20

    「埋め込みブラウザのOAuthログイン」を有効にしてコールバックURLを指定した後でも、Facebookのコールバックエラーが発生する

  21. 21

    複数行ヘッダーのJTableヘッダーテキストの折り返し(カスタムTableCellRenderer)

ホットタグ

アーカイブ