>>516
ぶっちゃけMD5の方がハッシュっという意味ではパっと見ではすぐれてる。
でも意図的にハッシュ値を衝突させられるっていうことが判明して以来、*危険性をはらんでいるかもしれない*からやめましょうっていう風潮。
(意図的にハッシュを当てられる、とはいえ、自由自在じゃないのでこれまた微妙なところ)
CRCはたとえばCRC-32であればハミング距離が4と分かっているので4bitのシングルビットエラーまでは検出可能。
バーストエラーは仕組み上ほぼ検出できる。(とよくみんな言ってるけど根拠は知らないなぁ)

でCRCの場合、バーストエラーを検出できるっていうのがとても優れていて、通信路のノイズが乗るケースだとバーストエラーが起こるんね、
なので通信路を通った対象物の誤り検出に用いられてる。

そんで次にCRCって代数学で理論が成り立っており、ソフトウェア的な実装方法も、ハードウェア的な実装も、それぞれが早いんです。
ついでにハードウェアの方は物理的な実装コストが安価に出来る、ということ。(クロック遅れちゃうけどね?)
(似たような例だと3DESとかかな?)
なので広く広まりました。ちゃんちゃん。


改ざん検出にMD5が使えない、と言う件は、例えば任意のコードを対象ファイルに埋めたスーパーハカーがいたとして、
MD5をの帳尻合わせにペイロードを対象ファイルにくっつけたり出来る可能性がある、ということ。怖いですね−。
(最近の情報知らないからごめんなさい、この辺出来るようになったんですか?)

sha-1ごめんねー最近の情勢しらないww そこまでいらないんじゃね、ってぐらいにしか思ってない、けど個人的にsha-1使えるなら使おう派。