使用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】P2759奇怪的函数(二分)
题目链接 看了题解之后突然发现这题简直是水题.然而不看题解就想不出来.为什么呢? len(x)=log10(x)+1 于是二分寻找x. #include<iostream> #includ ...
- 【深度学习一】tensorflow安装
一. 安装Anaconda https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ 二.安装tensorflow conda install --cha ...
- hdu 4819 Mosaic 树套树 模板
The God of sheep decides to pixelate some pictures (i.e., change them into pictures with mosaic). He ...
- mybatis配置报错(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)
如下报错:解决方案:要按照提示的顺序添加属性,(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrappe ...
- PHP简单留言板
<?php header("Content-Type:text/html;charset=utf8"); $filename = "message.txt" ...
- SQLite数据库相关操作
一.创建数据库 这里创建了note便签数据表,字段有noteId.noteTitle.noteTime.noteInfo ); // TODO Auto-generated constructor ...
- C# 用this修饰符为原始类型扩展方法
特点:1.静态类 2.静态方法 3.第一个参数前加this 例如:public static List<T> ToList<T>(this string Json),就是为th ...
- Android UI自定义Spinner下拉框(用popuwindow实现)-转
定义出第一个图片的布局和弹出框(一个listView)的布局,,这里就不在多说了~ListView需要自己定义一个MyspinnerAdapter~做好这些准备之后,就是弹出框的实现了~ prote ...
- 因chmod /usr致使raspberryPi重装
一.系统安装noobs 设置用户名及密码,设置超级用户root密码: sudo passwd root,回车后按提示输入两次root的密码(注意,输入时是不会提示*号的,直接输入即可) 二.源及软件 ...
- luogu P2912 [USACO08OCT]牧场散步Pasture Walking
题目描述 The N cows (2 <= N <= 1,000) conveniently numbered 1..N are grazing among the N pastures ...