ホームページ バックエンド開発 C#.Net チュートリアル C# がファイル MD5 と SHA1 を取得する方法の詳細な説明

C# がファイル MD5 と SHA1 を取得する方法の詳細な説明

Mar 26, 2017 pm 04:32 PM

最初にプログラミングを学び始めたとき、私はいつも自分でいくつかの小さなソフトウェア ガジェットを書くことを考えていました。

そして、これは古典的なファイルの MD5 検証であり、ちなみに SHA1 が追加されています。

インターネット上で何かをダウンロードするとき、作成者は MD5 値を提供します。

その機能は、ソフトウェアをダウンロードした後、ダウンロードしたファイルに対して MD5 チェックを実行して、取得したファイルがサイトによって提供されたファイルと同じファイルであることを確認できることです。

それでMD5検証ツールが必要なのでBaiduに行って探しますが、国内のダウンロードサイトは言うまでもなく…バンドルされているものはガードが難しいです。

それでは、プログラマーとして、自分で書いてみましょう。

このガジェットを分析するための主な要件は次のとおりです

1. パスに従ってファイルを見つけます

2. MD5 を取得します

非常に単純なガジェットです。最初のメソッドは FileInfo クラスを直接使用します。構造 関数へのパスを渡すだけで、ファイルをコンソールに直接ドラッグ アンド ドロップできるため、非常に便利です。

パスにスペースが含まれる場合、エラーが報告されることに注意してください。

このメソッドでは、s は受信ファイルのパスを表します

static void GetFile(string s)
        {
            try
            {
                FileInfo fi = new FileInfo(s);
                Console.WriteLine("文件路径:{0}", s);
                Console.WriteLine("文件名称:{0}", fi.Name.ToString());
                Console.WriteLine("文件类型:{0}", fi.Extension.ToString());
                Console.WriteLine("文件大小:{0} K", fi.Length / 1024);
                Console.WriteLine("文件创建时间:{0}", fi.CreationTime.ToString());
                Console.WriteLine("上次访问时间:{0}", fi.LastAccessTime.ToString());
                Console.WriteLine("上次写入时间:{0}", fi.LastWriteTime.ToString());
            }
            catch (Exception ex) 
            {
                Console.WriteLine(ex.Message);
            }
        }
ログイン後にコピー

2 番目のメソッドでは、MD5 値を取得します。このメソッドでは、s は受信ファイルのパスを表します

MD5 は、ファイル全体を大きなテキスト メッセージとして扱い、その不可逆性を通じて処理します。文字列変換アルゴリズムにより、この固有の MD5 メッセージ ダイジェストが生成されます。

static void GetMD5(string s)
        {
            try
            {
                FileStream file = new FileStream(s,FileMode.Open);
                MD5 md5 = new MD5CryptoServiceProvider();
                byte[] retval = md5.ComputeHash(file);
                file.Close();

                StringBuilder sc = new StringBuilder();
                for (int i = 0 ; i<retval.Length ; i++ )
                {
                    sc.Append(retval[i].ToString("x2"));
                }
                Console.WriteLine("文件MD5:{0}",sc);
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
ログイン後にコピー

3 番目の方法は、SHA1 値を取得することです。この方法では、s は受信ファイル パスを表します。

SHA1 は、長さが 2^64 ビット未満のメッセージに対して、 160 ビットのメッセージ。

SHA1 には次の特性があります: メッセージ ダイジェストから情報を復元することはできません; 2 つの異なるメッセージは同じメッセージ ダイジェストを生成しません (ただし、通常は無視して使用すると、1x10^48 の確率で同じメッセージ ダイジェストが生成されます)。

りー

以上がC# がファイル MD5 と SHA1 を取得する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C# を使用した Active Directory C# を使用した Active Directory Sep 03, 2024 pm 03:33 PM

C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# の乱数ジェネレーター C# の乱数ジェネレーター Sep 03, 2024 pm 03:34 PM

C# の乱数ジェネレーターのガイド。ここでは、乱数ジェネレーターの仕組み、擬似乱数の概念、安全な数値について説明します。

C# シリアル化 C# シリアル化 Sep 03, 2024 pm 03:30 PM

C# シリアル化のガイド。ここでは、C# シリアル化オブジェクトの導入、手順、作業、例についてそれぞれ説明します。

C# データ グリッド ビュー C# データ グリッド ビュー Sep 03, 2024 pm 03:32 PM

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

C# のパターン C# のパターン Sep 03, 2024 pm 03:33 PM

C# のパターンのガイド。ここでは、C# のパターンの概要と上位 3 種類について、その例とコード実装とともに説明します。

C# の素数 C# の素数 Sep 03, 2024 pm 03:35 PM

C# の素数ガイド。ここでは、C# における素数の導入と例を、コードの実装とともに説明します。

C# の階乗 C# の階乗 Sep 03, 2024 pm 03:34 PM

C# の Factorial のガイド。ここでは、C# での階乗の概要について、さまざまな例とコード実装とともに説明します。

マルチスレッドと非同期C#の違い マルチスレッドと非同期C#の違い Apr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

See all articles