セキュリティなどのためにMD5よりもSHA-256が好まれていることは知っていますが、ファイルの整合性のみをチェックする方法を使用する場合(つまり、パスワードの暗号化などとは無関係です)、 SHA-256を使用していますか?
MD5は128ビットであり、SHA-256は256ビットなので(したがって2倍の大きさ)...
暗号化に最大2倍の時間がかかりますか?
バックアッププログラムのように時間が重要ではなく、ファイルの整合性がすべて必要な場合、別のアルゴリズムについてMD5に反論したり、別の手法を提案したりしますか?
MD5を使用するとチェックサムが生成されますか?
SHA256とMDA5はどちらもハッシュアルゴリズムです。入力データ、この場合はファイルを受け取り、256/128ビットの数値を出力します。この番号はチェックサムです。実際には衝突はまれですが、入力の数が無限であれば同じハッシュ値になる可能性があるため、暗号化は行われません。
この答え によると、SHA256はMD5よりも計算に時間がかかります。
率直に言って、MD5はおそらくあなたが必要とするものに適しているでしょう。
1):はい、ほとんどのCPUでは、SHA-256はMD5の約40%の速度です。
2):そのような場合、MD5とは異なるアルゴリズムを主張します。私は間違いなく安全と考えられるアルゴリズムを好むでしょう。しかし、これはもっと感覚です。これが重要なケースは、現実的ではなく構築されます。バックアップシステムでMD5ベースの証明書に対する攻撃の例に遭遇した場合、そのような例には異なるデータを含むが同じMD5チェックサムを持つ2つのファイルがある可能性があります。残りのケースでは、MD5チェックサムが衝突(=異なるデータに対して同じチェックサム)を持っているのは、事実上意図的に引き起こされた場合のみであるため、問題ではありません。私はさまざまなハッシュ(チェックサム生成)アルゴリズムの専門家ではないため、別のアルゴリズムを提案することはできません。したがって、質問のこの部分はまだ開いています。さらなる参考として、ウィキペディアの 暗号化ハッシュ関数-ファイルまたはデータ識別子 をお勧めします。そのページのさらに下には、暗号化ハッシュアルゴリズムのリストがあります。
3):MD5はチェックサムを計算するアルゴリズムです。このアルゴリズムを使用して計算されたチェックサムは、MD5チェックサムと呼ばれます。
すべての答えは、あなたが仕事をするために安全なハッシュを使用する必要があることを示唆しているようですが、これらのすべては、ブルートフォース攻撃者に多くのコンピューティングパワーを持たせるために遅くなるように調整されており、あなたのニーズによってはこれは最良のソリューションではないかもしれません。
整合性と比較を確認するために、可能な限り高速にファイルをハッシュするように特別に設計されたアルゴリズムがあります(murmur
、XXhash
...)。明らかに、これらは安全なハッシュアルゴリズム(ランダム性)の要件を満たしていないため、セキュリティ用に設計されていませんが、大きなメッセージの衝突率が低い 。この機能は、セキュリティではなく速度を求めている場合に最適です。
このアルゴリズムと比較の例は、この優れた答えにあります: どのハッシュアルゴリズムが一意性と速度に最適ですか? 。
例として、Q&Aサイトではmurmur3
を使用してユーザーがアップロードした画像をハッシュし、ユーザーが複数の回答で同じ画像をアップロードした場合でも1回だけ保存します。
全体として、ファイル名に加えてMD5も絶対に安全だと思います。 SHA-256は、サイズが大きいため、処理が遅く、難しくなります。
MD5より安全性の低いものを問題なく使用することもできます。誰もあなたのファイルの完全性をハッキングしようとしないなら、これも安全です。
基礎となるMD5アルゴリズムはもはや安全とは見なされないため、md5sumはセキュリティに関連しない状況で既知のファイルを識別するのに適していますが、ファイルが意図的かつ悪意を持って改ざんされている可能性がある場合は信頼しないでください。後者の場合、sha256sumなどの新しいハッシュツールの使用を強くお勧めします。
したがって、単にファイルの破損やファイルの違いを確認したい場合、ファイルのソースが信頼できる場合、MD5で十分です。信頼できないソースから送信されたファイル、または暗号化されていない接続を介した信頼できるソースから送信されたファイルの整合性を検証する場合、MD5では不十分です。
別のコメント者は、UbuntuなどがMD5チェックサムを使用していると指摘しました。 UbuntuはMD5に加えてPGPとSHA256に移行しましたが、より強力な検証戦略のドキュメントを見つけるのはより困難です。詳細については、 HowToSHA256SUMページ を参照してください。
MD5はSHA256よりも高速であることが技術的に承認されているため、ファイルの整合性を検証するだけで十分であり、パフォーマンスが向上します。
次のリソースをチェックアウトできます。
ハッピーハッシング!