首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 獲取當前進程 Hash 值的方法 (一) 原理與步驟

     編輯:關於C語言

基本原理

要在 C# 中計算當前執行檔的 Hash 值,需依序執行以下步驟:

  1. 取得當前進程對應的本機主機檔案路徑。
  2. 以唯讀模式開啟該檔案流。
  3. 選定 Hash 演算法(如 MD5),計算檔案流的雜湊值。
  4. 將雜湊結果(位元組陣列)轉換為熟悉的十六進位字串表示。

取得主機檔案路徑

System.Diagnostics.Process 類別提供存取本機與遠端進程的功能。使用靜態方法 GetCurrentProcess() 取得目前進程,其 MainModule.FileName 屬性即為主機檔案完整路徑:

Process currProcess = Process.GetCurrentProcess();
string filePath = currProcess.MainModule.FileName;

更多取得目前路徑與組件的方法,可參考「C# 取得目前路徑的方法集合」。

開啟檔案流

使用 FileStream 以唯讀模式開啟,避免執行時期錯誤:

using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
    // 計算 Hash
    fs.Close();
}

選定 Hash 演算法並計算

.NET Framework 在 System.Security.Cryptography 命名空間提供多種雜湊演算法。以 MD5 為例:

MD5 algorithm = MD5.Create();
byte[] hashData = algorithm.ComputeHash(fs);

ComputeHash 接受 Stream 或 byte[],回傳固定長度 16 位元組的位元組陣列。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved