首頁 >後端開發 >C++ >如何使用 OpenSSL 在 C 中計算檔案的 MD5 雜湊值?

如何使用 OpenSSL 在 C 中計算檔案的 MD5 雜湊值?

Linda Hamilton
Linda Hamilton原創
2024-11-10 21:25:03732瀏覽

How to Calculate the MD5 Hash of a File in C   using OpenSSL?

從C 語言中的檔案計算MD5 雜湊

在保護資料完整性至關重要的場景中,MD5 雜湊演算法起著至關重要的作用。要在C 中計算檔案的MD5 雜湊值,這裡有一個利用OpenSSL 的強大實作:

實作:

#include <fstream>
#include <openssl/md5.h>

int main() {
  // Open the file
  std::ifstream file("input_file.txt");

  // Create a buffer to store the file contents
  std::vector<char> buffer(std::istreambuf_iterator<char>(file), {});

  // Calculate the MD5 hash
  unsigned char hash[MD5_DIGEST_LENGTH];
  MD5((unsigned char*) buffer.data(), buffer.size(), hash);

  // Convert the hash to a string
  std::stringstream ss;
  for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
    ss << std::hex << std::setfill('0') << std::setw(2) << (int) hash[i];
  }
  std::string md5_hash = ss.str();

  // Print the MD5 hash
  std::cout << "MD5 hash: " << md5_hash << std::endl;

  return 0;
}

此實作開啟檔案,讀取其內容到緩衝區中,並使用OpenSSL 函式庫計算MD5 哈希值。然後將哈希值轉換為十六進位字串並顯示。

以上是如何使用 OpenSSL 在 C 中計算檔案的 MD5 雜湊值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn