libmd5地址:https://sourceforge.net/projects/libmd5-rfc/

MD5Demo1.c

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "md5/md5.h"
  4. int main()
  5. {
  6. const md5_byte_t *data = "All is well!";
  7. md5_byte_t digest[];
  8. md5_state_t md5StateT;
  9. md5_init(&md5StateT);
  10. md5_append(&md5StateT, data, strlen(data));
  11. md5_finish(&md5StateT, digest);
  12. char md5String[] = { '\0' }, hexBuffer[];
  13. for (size_t i = ; i != ; ++i)
  14. {
  15. if (digest[i] < )
  16. sprintf(hexBuffer, "0%X", digest[i]);
  17. else
  18. sprintf(hexBuffer, "%X", digest[i]);
  19. strcat(md5String, hexBuffer);
  20. }
  21. printf("%s\n", md5String);
  22. system("pause");
  23. return ;
  24. }

MD5Demo2.c

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <time.h>
  4. #include "md5/md5.h"
  5. #define INPUT_BUFFER_SIZE 100 * 1024
  6. int main()
  7. {
  8. const char *filename = "E:/Packages/Win7/en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso";
  9. FILE *file = fopen(filename, "rb");
  10. if (file)
  11. {
  12. printf("正在计算MD5值...\n");
  13. time_t startTime = time(NULL);
  14. md5_state_t md5StateT;
  15. md5_init(&md5StateT);
  16. char buffer[INPUT_BUFFER_SIZE];
  17. while (!feof(file))
  18. {
  19. size_t numberOfObjects = fread(buffer, sizeof(char), INPUT_BUFFER_SIZE, file);
  20. md5_append(&md5StateT, buffer, numberOfObjects);
  21. }
  22. md5_byte_t digest[];
  23. md5_finish(&md5StateT, digest);
  24. char md5String[] = { '\0' }, hexBuffer[];
  25. for (size_t i = ; i != ; ++i)
  26. {
  27. if (digest[i] < )
  28. sprintf(hexBuffer, "0%x", digest[i]);
  29. else
  30. sprintf(hexBuffer, "%x", digest[i]);
  31. strcat(md5String, hexBuffer);
  32. }
  33. time_t endTime = time(NULL);
  34. fclose(file);
  35. printf("计算完毕:%s,耗时%u秒\n", md5String, endTime - startTime);
  36. }
  37. else
  38. printf("无法打开文件:%s\n", filename);
  39. system("pause");
  40. return ;
  41. }

使用C语言获取字符串或文件的MD5值的更多相关文章

  1. 在C++中使用Libmd5计算字符串或文件的MD5值

    CppMD5Demo.cpp #include <iostream> #include <fstream> #include <chrono> #include & ...

  2. 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值

    ps:这几天本人用百度云盘秒传了几部大片到云盘上,几个G的文件瞬秒竟然显示"上传成功"!这真让我目瞪口呆,要是这样的话,那得多快的网速,这绝对是不可能的,也许这仅是个假象.百度了一 ...

  3. 计算字符串和文件的MD5值

    //计算字符串的MD5值 public string GetMD5(string sDataIn) { MD5CryptoServiceProvider md5 = new MD5CryptoServ ...

  4. c# 计算字符串和文件的MD5值的方法

    快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中.   <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...

  5. 使用python求字符串或文件的MD5

    使用python求字符串或文件的MD5 五月 21st, 2008 #以下可在python3000运行. #字符串md5,用你的字符串代替'字符串'中的内容. import hashlib md5=h ...

  6. linux shell 命令获取字符串/文件的MD5值

    获取字符串的MD5值: 字符串“hello”的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2a76b9719d9 ...

  7. C#计算文件的MD5值实例

    C#计算文件的MD5值实例 MD5 是 Message Digest Algorithm 5(信息摘要算法)的缩写,MD5 一种散列(Hash)技术,广泛用于加密.解密.数据签名和数据完整性校验等方面 ...

  8. python检测文件的MD5值

    python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...

  9. 计算文件的MD5值(Java & Rust)

    Java public class TestFileMD5 { public final static String[] hexDigits = { "0", "1&qu ...

随机推荐

  1. EXPDP/IMPDP任务的查看与管理

    EXPDP/IMPDP相比传统的exp/imp的最本质区别在于服务器端执行,客户端发出指定后,通过API启动服务器的备份job,在执行过程中,可以拿下Ctrl+C组合键,退出当前交互模式,退出之后,导 ...

  2. BZOJ-1303 中位数图

    先找到B的位置x,然后依次统计A[i..x-1](0<i<x)中小于B的个数,和A[x+1..i](x<i<n)中大于B的个数 最后Answer等于(左边有i个小于B的情况总数 ...

  3. BZOJ4199 [Noi2015]品酒大会 【后缀数组 + 单调栈 + ST表】

    题目 一年一度的"幻影阁夏日品酒大会"隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发"首席品 酒家"和"首席猎手"两个奖项,吸 ...

  4. Nk 1430 Divisors(因子数与质因数)

    Time Limit: 5000 ms    Memory Limit: 10000 kB   Total Submit : 432 (78 users)   Accepted Submit : 10 ...

  5. 还是Tomcat,关于类加载器的趣味实验

    一.前言 类加载器,其实是很复杂一个东西,想等到我完全什么都弄明白了再写出来,估计不太现实...现在只能是知道多少写多少吧. 首先,我提一个问题:在我们自己的servlet中(比如ssm中,contr ...

  6. hdu4612 无向图中任意添加一条边后使桥的数量最少 / 无向图缩点+求树的直径

    题意如上,含有重边(重边的话,俩个点就可以构成了边双连通). 先缩点成树,在求数的直径,最远的连起来,剩下边(桥)的自然最少.这里学习了树的直径求法:第一次选任意起点U,进行bfs,到达最远的一个点v ...

  7. AC日记——草地排水 codevs 1993

    1993 草地排水 USACO  时间限制: 2 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description 在农夫约翰的农场上,每 ...

  8. easyui combobox模糊查询

    用easyui框架开发的攻城狮恐怕都遇到过这样一个问题,就是在新增页面combobox下拉框需要支持模糊查询,但是输入不是combobox中Data里面的值的时候,点击保存,依然是可以新增进去的,这样 ...

  9. 【面试 struts2】【第三篇】struts2的问题

    1.struts2的工作流程 1>客户端浏览器发出HTTP请求. 2>根据web.xml配置,该请求被FilterDispatcher接收 3>根据struts.xml配置,找到需要 ...

  10. 大话大前端时代(一) —— Vue 与 iOS 的组件化

    序 今年大前端的概念一而再再而三的被提及,那么大前端时代究竟是什么呢?大前端这个词最早是因为在阿里内部有很多前端开发人员既写前端又写 Java 的 Velocity 模板而得来,不过现在大前端的范围已 ...