メインコンテンツへスキップ
Z

MD5 vs SHA-1

MD5 vs SHA-1 compared — length, speed and security. Both are broken for security; here is what each is still useful for.

MD5 (128-bit) and SHA-1 (160-bit) are both older hash functions that are broken for security — practical collisions exist for both. Neither should be used for signatures or passwords; use SHA-256 instead.

MD5 vs SHA-1 at a glance

MD5 SHA-1
Output 128-bit (32 hex) 160-bit (40 hex)
Speed Faster Fast
Collisions Broken Broken
Safe for security? No No

When to use MD5

Use MD5 only for non-security checksums (deduplication, corruption checks).

When to use SHA-1

Use SHA-1 only where a legacy system requires it; prefer SHA-256 for anything new.

Tools for MD5 & SHA-1

MD5 vs SHA-1

どのアルゴリズムに対応していますか?

MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA3-256、SHA3-384、SHA3-512、Keccak-256(Ethereumで使われる派生版)、CRC-32、NTLMに対応しています。

MD2、MD6、Whirlpoolがないのはなぜですか?

MD2は1996年に非推奨となっており、組み込むのに十分小さく、かつメンテナンスされているJS実装が存在しません。MD6は研究段階の設計にとどまり、実際に実装されたことがありません。Whirlpoolは700行にも及ぶルックアップテーブルが必要ですが、需要があれば追加を検討します。

SHA-256を選んでおけば問題ないですか?

多くの現代的な用途ではそれで十分です — SHA-256は高速で広くサポートされており、安全性も高いとされています。MD系やSHA-1系列とは完全に異なる方式が必要な場合は、SHA3-256やSHA-512を使ってください。パスワードの保存には、単純なハッシュではなくArgon2やbcryptといった専用のKDFを使用してください。

1つのアルゴリズムだけに特化したツールが欲しい場合は?

専用ページもご用意しています。MD5ハッシュジェネレーター、SHA-256ハッシュジェネレーター、SHA-1ハッシュジェネレーター、Keccak-256ハッシュジェネレーターをお試しください。

Keccak-256とSHA3-256の違いは何ですか?

Keccak-256はパディングに変更が加えられていないオリジナル版のKeccakアルゴリズムです。一方SHA3-256はNISTによって標準化されたバージョンで、パディングのバイトが若干異なります。同じ入力でも両者は異なる結果を返します。EthereumはKeccak-256を使用しています(Solidityのkeccak256()関数)。