openssl环境的配置, 我就不再说了。在本文中, 我们来讨论一个文件的md5值, 废话少说, 直接给大家代码, 上点干货:

[cpp] view plaincopy
  1. #include <iostream>
  2. #include <openssl/md5.h> // 如果你直接拷贝我的程序运行, 那注定找不到md5.h
  3. #pragma comment(lib, "libeay32.lib")
  4. #pragma comment(lib, "ssleay32.lib")  // 在本程序中, 可以注释掉这句
  5. using namespace std;
  6. int main()
  7. {
  8. MD5_CTX ctx;
  9. int len = 0;
  10. unsigned char buffer[1024] = {0};
  11. unsigned char digest[16] = {0};
  12. FILE *pFile = fopen ("test1.db", "rb"); // 我没有判断空指针
  13. MD5_Init (&ctx);
  14. while ((len = fread (buffer, 1, 1024, pFile)) > 0)
  15. {
  16. MD5_Update (&ctx, buffer, len);
  17. }
  18. MD5_Final (digest, &ctx);
  19. fclose(pFile);
  20. int i = 0;
  21. char buf[33] = {0};
  22. char tmp[3] = {0};
  23. for(i = 0; i < 16; i++ )
  24. {
  25. sprintf(tmp,"%02X", digest[i]); // sprintf并不安全
  26. strcat(buf, tmp); // strcat亦不是什么好东西
  27. }
  28. cout << buf << endl;  // 文件的md5值
  29. return 0;
  30. }

经与其他工具软件进行对比, 发现结果完全一致。

如何利用openSsl来计算一个文件的md5值?相关推荐

  1. [Golang]计算一个文件的MD5值

    说明 在实际的开发过程中,总需要对文件进行md5加密的需求,在开发过程中,我就遇到了将表单文件MD5后再存储本地的需求. 解决 MD5的所需要的包在"crypto/md5"包中,需 ...

  2. 利用python实现批量修改文件的md5值

    # 该.py文件与待修改文件置于同一文件夹下,操作运行即可实现功能.注意观察操作台反馈. import os import random import sys import hashlib# 获取当前 ...

  3. 用windows api 计算文件的md5值

    我自己封装了一个函数GetMd5(LPCWSTR FileDirectory).其中调用了windows api:CryptAcquireContext,CryptCreateHash,CryptHa ...

  4. 使用Java计算文件的MD5值(含修改MD5值的方法)

    什么是 MD5 ? MD5(Message Digest Algorithm,信息摘要算法),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保 ...

  5. linux 文件md5,Linux下计算文件的MD5值

    脚本功能 脚本使用Perl编写,计算文件的MD5值 脚本用途 服务器在安装完操作系统后,计算PATH变量里面所有的二进制文件的MD5.计算单个文件MD5值.计算某个目录(包括子目录)下所有的文件的MD ...

  6. python计算文件md5值_用python计算文件的MD5值

    md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...

  7. 编写一个计算机程序用来计算一个文件的 16 位效验和(Java实现)

    编写一个计算机程序用来计算一个文件的 16 位效验和(Java实现) 题目 编写一个计算机程序用来计算一个文件的 16 位效验和.最快速的方法是用一个 32 位的整数来存放这个和.记住要处理进位(例如 ...

  8. python怎么判断一个文件是否存在-利用Python如何判断一个文件是否存在

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...

  9. 利用openssl来计算sha1, sha224, sha256, sha384, sha512

    转载:http://blog.csdn.net/stpeace/article/details/42371079 利用openssl来计算sha1, sha224, sha256, sha384, s ...

最新文章

  1. php header setcookie,php中header头设置Cookie与内置setCookie的区别,和js对cookie操作
  2. 两代“狗”开发者首次解答30多个问题,一定有你想了解的!(附论文下载)
  3. BCB中获得RichEdit 默认行间距
  4. 安装 ArcGISAPI31forSilverlight an i/o error occured while installing a file错误解决
  5. linux 逻辑运算符and,布尔逻辑运算符
  6. springboot---集成mybits方法
  7. python mysql 2002_python MySQLdb连接mysql失败 2002, Can't connect to loca
  8. 1英寸大底手机来了 是索尼的营销噱头吗?
  9. 数字电路技术可能出现的简答题_2013年9月份考试数字电子技术第二次作业
  10. ceph搭建_如何一键搭建并管理Filecoin集群节点 | Gamma OS新功能上线
  11. [Machine Learning Algorithm] 决策树与迭代决策树(GBDT)
  12. github进不去_app.gitbook.com进不去,一直卡着怎么回事
  13. IDEA常用快捷键汇总
  14. 数据结构题及c语言版 答案,数据结构(C语言版)1800道题及答案[完整版]
  15. 大白话理解可达性分析算法
  16. 定投的收益率怎么计算
  17. Apple开发账号添加团队成员
  18. Pixel3 支持中国电信2G语音、4G网络、VOLTE
  19. adb命令重置_ADB命令手册大全
  20. java设置excel密码

热门文章

  1. windows下实现自己的第一个python脚本文件并.exe运行
  2. PIX525故障一例,求解
  3. 使用WinIO库实现保护模式下的IO和内存读写
  4. 结合 category 工作原理分析 OC2.0 中的 runtime
  5. Frequent Pattern 挖掘之二(FP Growth算法)(转)
  6. linux ssh密钥登录配置
  7. 参加 CSDN 2009 英雄大会有感(一)
  8. C语言中的“”和“”
  9. Ubuntu中安装、生成、导入、导出、Python3虚拟环境
  10. python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink