Written in Japanese(UTF-8)
2005. 9. 3
INASOFT


/トップ/MD5/CRCについて


MD5について
CRCについて
プログラム開始時のMD5によるチェック機能について
MD5の算出方法

■MD5について




MD5は、ファイルが破損していないか、または改ざんされていないかを確認するための値です。

INASOFTでは、いくつかのソフトウェアについて、ファイルが破損していないかどうかのチェックのために、開発用PCにてMD5の値を算出し、Web上で掲示しています(図1)。

更新点最近の更新点参照
対応OS:Windows 98/Me/2000/XP(日本語,32bit)
必要なランタイム:とくになし

●自己解凍書庫版(インストーラ付き) ※通常はこちらをご利用ください
ファイルサイズ:1.53 MB (1,605,003 バイト)
MD51DCC8391E80C659983F110E4DDB84002←これがMD5です。
ダウンロード元を次の中からお選びください。

図1 MD5が掲示されている場所

開発用PCから公開用サーバへの転送過程、あるいは、公開用サーバから利用者PCへの転送過程において、ファイルが破損することは十分に考えられます(実際、そのような事例がすでに数十件報告されています)。そこで、開発者PCで算出したMD5と、利用者PCで算出したMD5を比較することにより、ファイルが破損しているかどうかを確認できるようにしました

利用者PCでのMD5の算出方法については、MD5の算出方法をご覧下さい。

もし、Web上で掲示しているMD5と、利用者PCで算出したMD5が異なる場合は、ファイルのダウンロードをやり直してください。

ただし、ご利用のブラウザによっては、ダウンロードされるファイルをキャッシュするものがあり、壊れたファイルをキャッシュしている場合、何度ダウンロードを試みても、壊れたファイルがダウンロードされてしまうことがあります。この場合、いったんキャッシュをクリアした上で、ファイルのダウンロードを行って下さい

また、ファイルの転送経路にプロキシサーバが存在する場合、プロキシサーバが壊れたファイルをキャッシュしていることもあります。この場合、プロキシサーバの管理者に連絡するか、異なるダウンロード元(ミラーサーバ)を選択して、ダウンロードをやり直してください

※近年、ファイルが改ざんされているかどうかの確認については、MD5によるチェックでは不十分という見解もあります。しかし、ファイルの破損の確認には、まだ十分に実用性があると考えられます。


■CRCについて


MD5と同様に、ファイルの破損、あるいは改ざんを確認するための仕組みです。

INASOFTで公開している圧縮ファイルには、圧縮ソフトがCRCの算出値を埋め込んでおり、解凍時にCRCを算出・比較することにより、ファイルが破損していないかどうかを確認することができるようになっています。

なお、INASOFTで公開しているいくつかのソフトウェアについては、自己解凍書庫形式のインストーラを公開していますが、最近公開したバージョンでは、CRCの確認を自動的に行い、ファイルが壊れているとインストールできないようになっています。(図2)

CRCエラー発生時の様子
図2 CRCエラーの発生画面

もし、このエラーが発生した場合は、ファイルのダウンロードをやり直してください。

ただし、ご利用のブラウザによっては、ダウンロードされるファイルをキャッシュするものがあり、壊れたファイルをキャッシュしている場合、何度ダウンロードを試みても、壊れたファイルがダウンロードされてしまうことがあります。この場合、いったんキャッシュをクリアした上で、ファイルのダウンロードを行って下さい

また、ファイルの転送経路にプロキシサーバが存在する場合、プロキシサーバが壊れたファイルをキャッシュしていることもあります。この場合、プロキシサーバの管理者に連絡するか、異なるダウンロード元(ミラーサーバ)を選択して、ダウンロードをやり直してください


■プログラム開始時のMD5によるチェック機能について

いくつかのソフトウェアでは、プログラム開始時に、自分自身のMD5の算出を行い、あらかじめ計算済みの値との比較を行います。

これにより、ディスクの破損またはウイルス感染等によるファイル破損の検出ができるようになっています。

なお、パッチを当てる等の理由で、このチェックを行わせたくない場合は、このチェックを抑止することができます。方法については、各ソフトウェアの更新履歴やFAQ等をご覧下さい。


■MD5の算出方法

作者はmd5コマンドというフリーソフトを用いてMD5を算出していました。

(↑過去形になっているのは、現在は.NET Frameworkで作った自作ソフトでMD5を算出しているためです。System.Security.Cryptography.MD5CryptoServiceProvider.ComputeHash() を使っています)

(↑現在ではこれも過去の話となっており、2005年9月時点では、いじくるつくーる」の「右クリックメニューの拡張」に備えられたMD5算出機能を用いて算出しています。)

(↑これもこれも過去の話となっており、2006年10月時点では、HashTab Shell Extensionを用いて算出しています。)



/トップ/MD5/CRCについて