ファイルのMD5チェックサムを計算する 質問する

ファイルのMD5チェックサムを計算する 質問する

私は使用していますiTextSharpPDFファイルからテキストを読み取ります。しかし、PDFファイルに画像しか含まれていないため、テキストを抽出できない場合があります。毎日同じPDFファイルをダウンロードしており、PDFが変更されたかどうかを確認したいと考えています。テキストと変更日を取得できない場合は、MD5チェックサムは、ファイルが変更されたかどうかを確認する最も信頼性の高い方法ですか?

もしそうなら、私は暗号化についてあまり経験がないので、いくつかのコードサンプルをいただければ幸いです。

ベストアンサー1

使い方はとても簡単ですシステム.セキュリティ.暗号化.MD5:

using (var md5 = MD5.Create())
{
    using (var stream = File.OpenRead(filename))
    {
        return md5.ComputeHash(stream);
    }
}

(実際に使用されている MD5 実装は破棄する必要はないと思いますが、それでも破棄すると思います。)

その後、結果をどのように比較するかはあなた次第です。たとえば、バイト配列を base64 に変換したり、バイトを直接比較したりできます。(配列は を上書きしないことに注意してくださいEquals。base64 を使用すると正しく実行するのが簡単になりますが、ハッシュの比較のみに関心がある場合は、効率が少し低下します。)

ハッシュを文字列として表現する必要がある場合は、次のようにして 16 進数に変換できますBitConverter

static string CalculateMD5(string filename)
{
    using (var md5 = MD5.Create())
    {
        using (var stream = File.OpenRead(filename))
        {
            var hash = md5.ComputeHash(stream);
            return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
        }
    }
}

おすすめ記事