筆者は自作のソフトをいくつか公開しているのですが、時々、「ダウンロードしたのに壊れていて使えません」という問い合わせを受けます。ネットの回線状況が調子の悪い時など、希にダウロードが正しく完了したように思えても、ファイルのダウンロードに失敗していることがあるのです。そのため、問い合わせに対しては「もう一度ダウンロードして下さい」と返信しています。

 しかし、以前、筆者がサーバーにアップロードする段階でファイルが壊れており、それに気づかず、壊れたファイルを配布していたということがあり、迷惑をかけたことがありました。そのため、現在はファイルをアップロードしたら、一般公開する前に正しくアップロードできたのかを確認するようにしています。

 そこで、今回は「ハッシュ値」を使いファイルが正しくダウンロードできたかどうかを調べるツールを作ってみます。このハッシュ値というのは、あるデータが与えられた場合に、そのデータを要約した数列を表します。これは異なるデータから異なるハッシュ値が生成されることを目標としたものです。ハッシュ値を計算する有名なアルゴリズムに「MD5」や「SHA-1」などがあります。

 冒頭のケース以外に正しくアップロードできていたとしても、悪意を持った誰かに勝手にファイルを書き換えられてしまうという自体が起きないとも限りません。以前、有名なソフトを配布していたダウンロードサイトが乗っ取られ、トロイの木馬が仕組まれたウィルス入りのソフトに置き換えられていたという事件がありました。

 こうした問題を避けるため、なでしこのダウンロードページでも、ダウンロードしたファイルが壊れていないか、あるいは、意図しないファイルに書き換えられていないかを確かめるためにハッシュ値を確認できるようになっています。

 ダウンロードしたファイルのハッシュ値を調べて、それがダウンロードページで公開されているハッシュ値と比較します。それが合致していれば正しくダウンロードできたということになります。