2015年12月1日火曜日

VS zip 化したファイルのタイムスタンプの誤差

自分の作った実行ファイルを zip 化(圧縮)して公開したものを 展開すると、
あら不思議、 ファイルのタイムスタンプが微妙に 違う!。
タイムスタンプも公開して、その真偽の程を確認してもらうのは 無理なのかなぁ ... 。
圧縮方法を変えたり、自前のプログラムで圧縮を操作する手も考えられはしますが ... 。


実は、別投稿で、自分の作った実行ファイルを zip 化して公開したのですが、
後々、その実行ファイル名で検索を掛けると、思いもよらぬサイトが Hit しました。
ウィルスチェックしたのでしょうね。
そこで、気になったのが、 所謂、 MD5 等のハッシュコードです。

良く、フリーソフトの配布サイトで見掛ける あれ です。

早速、自分の Blog にも表示して見ようかと ... 。
それが、今回の発端です。

MD5 を載せるなら、 序でに、 サイズ や タイムスタンプ もと考えたのが、 悩みの始まりでした。
MD5 に関しては、気が向けば、別投稿で纏めたいと思ってはいます ... 。   zip が絡まなければ 直ぐに 書けるのですが ... 。.

ご存知の様に、
公開は、 自分の環境下で、作成した実行ファイル等を zip でパッケージ化して、 これを何処かにアップロードし、
そのリンクを公開する事で、 ダウンロードして貰う形になります。
勿論、複雑なものを正式に公開するなら、インストール用のファイルをちゃんと作って ...  だと思いますが。.
展開すれば、 元と、 うりふたつ のものが現れる 筈 なのですが ... 。

た た たいむ タイムスタンプ が 違う! のですね。  たった、数秒ですが、 ね。

う~ん、誤解を招く書き方かなぁ~。            .
PC の設定によって異なるのですが、           .
元の3つの日付のうち幾つかは同じになる筈なのに。  .

いやぁ、悩みました。
何処かで、見落とし がないか、 ミスしてないか、 etc. 。

結局、これですね。
wikipedia さま から引用します。

また ZIPの仕様では複数のファイルシステムのファイルにアクセスしてアーカイブを扱うこともサポートされている。もともとは複数の1.44MBフロッピーディスク にアクセスすることによる、巨大なzipファイルの格納を目的としていた。現在、この機能は分割されたzipアーカイブをメールで送信したり、その他の転送方法やリムーバブルメディアで使用されている。

DOSのFAT ファイルシステムは2秒単位でタイムスタンプを保持する。ZIPファイルはこの仕組みを模倣している。結果としてZIPアーカイブ内にあるファイルのタイムスタンプも2秒単位で丸められる。但し、より正確なタイムスタンプを格納するために拡張フィールドを使用することができる。


いやぁ、仕様だったのですね。
少し、ほっと しました。


見地を変えれば、
zip に取り込む事で、 MD5 等のハッシュ値は変わらないけれど、 タイムスタンプ(時刻)は 2秒の誤差 を孕む可能性がある
と言う事ですね。.



[2015/12/01] 誤字訂正

0 件のコメント:

コメントを投稿