[解決済み] ファイルのMD5チェックサムを計算する
2022-03-14 22:59:22
質問
を使っています。 iTextSharp を使用して、PDF ファイルからテキストを読み取ることができます。しかし、PDFファイルには画像しか入っていないため、テキストを抽出できないことがあります。毎日同じPDFファイルをダウンロードするので、そのPDFが変更されたかどうかを確認したいのです。テキストと更新日時を取得できない場合、PDFファイルからテキストを抽出する方法はありますか? MD5 チェックサムは、ファイルが変更されたかどうかを判断する最も信頼性の高い方法ですか?
もしそうなら、暗号の経験があまりないので、いくつかのコードサンプルをお願いします。
どのように解決するのですか?
簡単です。 システム・セキュリティ・暗号・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();
}
}
}
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] C#で相対時間を計算する
-
[解決済み] URLのPath.Combineは?
-
[解決済み] 2つの日付の差(日数)を計算する?
-
[解決済み] JavaでMD5ハッシュを生成するにはどうすればよいですか?
-
[解決済み] JavaでファイルのMD5チェックサムを取得する
-
[解決済み] ファイルのMD5チェックサムを生成する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] .NETを使用して2つのファイルを高速に比較する方法は?