使用C语言获取字符串或文件的MD5值
libmd5地址:https://sourceforge.net/projects/libmd5-rfc/
MD5Demo1.c
#include <stdio.h>
#include <string.h>
#include "md5/md5.h"
int main()
{
const md5_byte_t *data = "All is well!";
md5_byte_t digest[];
md5_state_t md5StateT;
md5_init(&md5StateT);
md5_append(&md5StateT, data, strlen(data));
md5_finish(&md5StateT, digest);
char md5String[] = { '\0' }, hexBuffer[];
for (size_t i = ; i != ; ++i)
{
if (digest[i] < )
sprintf(hexBuffer, "0%X", digest[i]);
else
sprintf(hexBuffer, "%X", digest[i]);
strcat(md5String, hexBuffer);
}
printf("%s\n", md5String);
system("pause");
return ;
}
MD5Demo2.c
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "md5/md5.h"
#define INPUT_BUFFER_SIZE 100 * 1024
int main()
{
const char *filename = "E:/Packages/Win7/en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso";
FILE *file = fopen(filename, "rb");
if (file)
{
printf("正在计算MD5值...\n");
time_t startTime = time(NULL);
md5_state_t md5StateT;
md5_init(&md5StateT);
char buffer[INPUT_BUFFER_SIZE];
while (!feof(file))
{
size_t numberOfObjects = fread(buffer, sizeof(char), INPUT_BUFFER_SIZE, file);
md5_append(&md5StateT, buffer, numberOfObjects);
}
md5_byte_t digest[];
md5_finish(&md5StateT, digest);
char md5String[] = { '\0' }, hexBuffer[];
for (size_t i = ; i != ; ++i)
{
if (digest[i] < )
sprintf(hexBuffer, "0%x", digest[i]);
else
sprintf(hexBuffer, "%x", digest[i]);
strcat(md5String, hexBuffer);
}
time_t endTime = time(NULL);
fclose(file);
printf("计算完毕:%s,耗时%u秒\n", md5String, endTime - startTime);
}
else
printf("无法打开文件:%s\n", filename);
system("pause");
return ;
}
使用C语言获取字符串或文件的MD5值的更多相关文章
- 在C++中使用Libmd5计算字符串或文件的MD5值
CppMD5Demo.cpp #include <iostream> #include <fstream> #include <chrono> #include & ...
- 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值
ps:这几天本人用百度云盘秒传了几部大片到云盘上,几个G的文件瞬秒竟然显示"上传成功"!这真让我目瞪口呆,要是这样的话,那得多快的网速,这绝对是不可能的,也许这仅是个假象.百度了一 ...
- 计算字符串和文件的MD5值
//计算字符串的MD5值 public string GetMD5(string sDataIn) { MD5CryptoServiceProvider md5 = new MD5CryptoServ ...
- c# 计算字符串和文件的MD5值的方法
快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...
- 使用python求字符串或文件的MD5
使用python求字符串或文件的MD5 五月 21st, 2008 #以下可在python3000运行. #字符串md5,用你的字符串代替'字符串'中的内容. import hashlib md5=h ...
- linux shell 命令获取字符串/文件的MD5值
获取字符串的MD5值: 字符串“hello”的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2a76b9719d9 ...
- C#计算文件的MD5值实例
C#计算文件的MD5值实例 MD5 是 Message Digest Algorithm 5(信息摘要算法)的缩写,MD5 一种散列(Hash)技术,广泛用于加密.解密.数据签名和数据完整性校验等方面 ...
- python检测文件的MD5值
python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...
- 计算文件的MD5值(Java & Rust)
Java public class TestFileMD5 { public final static String[] hexDigits = { "0", "1&qu ...
随机推荐
- 【Luogu】P3052摩天大楼里的奶牛(遗传算法乱搞)
一道状压题,但今天闲来无事又用遗传乱搞了一下. 设了一个DNA数组,DNA[i]记录第i个物品放在哪个组里.适应度是n-这个生物的组数+1. 交配选用的是轮盘赌和单亲繁殖——0.3的几率单点变异.(事 ...
- 深入了解类加载过程及Java程序执行顺序
前言 在Java中,静态 Static关键字使用十分常见 本文全面 & 详细解析静态 Static关键字,希望你们会喜欢 目录 1. 定义 一种 表示静态属性的 关键字 / 修饰符 2. 作用 ...
- BZOJ 3907: 网格【组合数学】
Description 某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m.现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过 ...
- Java面试题集(四)
二. Java Web基础部分 在js中如何创建一个对象? var p1={name:”tom”,”age”:12}; function Person(name,age){ this.name=nam ...
- python常用模块详解(一)
一.简介 模块是一个保存了Python代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码 模块分为三种: 自定义模块 内置标准模块 开源模块(第三方) 自定义模块: 模块导入 impor ...
- hdu2448 / 费用流 / harbin赛区c题
题(自)目(己)错(英)综(语)复(太)杂(差),关系理了半小时+翻译才看明白,看明白之后,直接建图,费用流击杀./简单题. 2A:有的地方,可用互通的要建双向边! #include<cstdi ...
- codevs——1297 硬币
1297 硬币 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 我们知道即使是同一种面值的硬币,它们的重量也 ...
- python远程访问hive
#!/usr/bin/pythonimport syssys.path.append('/home/zhoujie/Downloads/hive-0.7.0-cdh3u0/lib/py')from h ...
- VisualSVN Server 导入已存在的库
http://blog.csdn.net/lidatgb/article/details/7984220 早些时候建立过一个SVN Server的库,后来觉得库的名字太长了,随意换了一 ...
- 使用 Unicode 编码
面向公共语言执行库的应用程序使用编码将字符表示形式从本机字符方案(Unicode)映射为其它方案. 应用程序使用解码将字符从非本机方案(非 Unicode)映射为本机方案. System.Text 命 ...