質問: CRC32とMD5はハッシュアルゴリズム?として、どちらもよく利用されていると思います。 けれど、その使い分けはどのように行われているのですか?
回答: CRC は巡回冗長検査 - ハードウエアで実装が容易 - 計算結果が小さい (CRC-32 なら 32bit) - 逆方向演算を困難にするようには設計されていない - 伝送誤りの検出に向く - 改ざんの検出には向かない - 計算方法 (計算式) がいっぱいある (標準化されてない) (暗号論的)単方向ハッシュ (MD5 は古いので SHA 推奨) - 計算量が多い(ハードウエア実装には向かない) - 計算結果が大きい (MD5 で 128bit SHA256 で 256bit) - 逆方向演算がきわめて困難になるよう設計されている - 伝送誤りの検出に使うにはコスト高 - 改ざんの検出も可能 (正しく運用できる限り) - 計算方法が標準化されている 実際問題として - CRC は短い電文の伝送誤りをハードウエアレベルで検出する目的に使われることが多い - 単方向ハッシュはソフトウエアレベルで改ざん防止・逆変換防止に使われることが多い と理解してそんなにまちがってない・・・と思うです。