首页 >后端开发 >C++ >如何使用 OpenSSL 在 C 中计算文件的 MD5 哈希值?

如何使用 OpenSSL 在 C 中计算文件的 MD5 哈希值?

Linda Hamilton
Linda Hamilton原创
2024-11-10 21:25:03730浏览

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