从 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中文网其他相关文章!