博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux c++ 文件获取md5
阅读量:4983 次
发布时间:2019-06-12

本文共 1274 字,大约阅读时间需要 4 分钟。

  当前在linux系统下,shell命令可以获取md5值,如下:

  如果进行c++编程,在代码里执行shell命令可以获得,但是很不雅观,特别是了解了system或者popen函数的机制之后。现在介绍使用openssl的md5函数生成文件md5:

#include 
#include
#include
using std::string;int get_file_md5(const std::string &file_name, std::string &md5_value){ md5_value.clear(); std::ifstream file(file_name.c_str(), std::ifstream::binary); if (!file) { return -1; } MD5_CTX md5Context; MD5_Init(&md5Context); char buf[1024 * 16]; while (file.good()) { file.read(buf, sizeof(buf)); MD5_Update(&md5Context, buf, file.gcount()); } unsigned char result[MD5_DIGEST_LENGTH]; MD5_Final(result, &md5Context); char hex[35]; memset(hex, 0, sizeof(hex)); for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) { sprintf(hex + i * 2, "%02x", result[i]); } hex[32] = '\0'; md5_value = string(hex); return 0;}int main(int argc, char* argv[]){ string file_name = "/home/dev/test.txt"; string md5value; int ret = get_file_md5(file_name, md5value); if (ret < 0)   {
    printf("get file md5 failed. file=%s\n", file_name.c_str());     return -1;   } printf("the md5value=%s\n", md5value.c_str());}

 

转载于:https://www.cnblogs.com/foreverstars/p/9026436.html

你可能感兴趣的文章
微信公众平台生成带参数二维码
查看>>
【spring boot】SpringBoot初学(2) - properties配置和读取
查看>>
ECSHOP info: Can't pConnect MySQL Server(localhost:3306)!
查看>>
设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)
查看>>
Application_Start和Application_End事件执行时间
查看>>
获取表格中的值
查看>>
Implement Trie (Prefix Tree)
查看>>
Island Perimeter
查看>>
学习进度(13)
查看>>
nyoj--586--疯牛(二分&&枚举)
查看>>
spring启动流程
查看>>
UITableViewController的子控件不随着滑动
查看>>
将博客搬至CSDN
查看>>
python IDE pycharm的安装与使用
查看>>
百度推广账户搭建思路
查看>>
iOS开发之 xcode6 APP 打包提交审核详细步骤
查看>>
Python time模块与datatime模块
查看>>
Spring学习笔记10--装配bean集合类型注入值
查看>>
java基础练习[一]
查看>>
scala的多种集合的使用(2)之集合常用方法
查看>>