ISOイメージを作成することなく、CD-ROMから直接データを読み込んでMD5ハッシュ値を計算するための方法。
MD5.ComputeHashメソッドでMD5を計算する際、CD-ROMのデータを一度バイト配列に落としてからComputeHashメソッドに渡すのはムダが多いので、なんらかの方法でStreamから直接読み込ませる方法を考える。
CdromIsoStreamクラス
まずは、FileStreamクラスを継承してCD-ROMのデータを直接読み込むためのクラスを作る。
注意: この実装を使った場合だとCD-ROMの最終セクタの途中までしか読み込まないようなので、ISOイメージ作成ツールを使ってダンプした場合とは異なるチェックサムとなる。 あくまで参考として掲載する。 なお、以下のコードを使用して作成したISOイメージは問題なくマウントできる模様。
MD5の計算
前述のクラスを使うことでCD-ROMのデータをStreamとして読み込めるようになったので、早速ComputeHashメソッドにこのインスタンスを渡してMD5を計算させる。
ISOイメージの作成
MD5の計算以だけでなく、読み込んだデータをそのままFileStreamに書きだせばISOイメージを作成することができる。