社区
C++ 语言
帖子详情
对大文件怎么怎么算MD5呢?
SYSDP
2008-06-12 11:43:37
文件内容有可能大于内存,
在不能一次全都读出的情况下,
C++中有什么好的方法嘛?
谢谢先啊
--
...全文
1517
14
打赏
收藏
对大文件怎么怎么算MD5呢?
文件内容有可能大于内存, 在不能一次全都读出的情况下, C++中有什么好的方法嘛? 谢谢先啊 --
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
myoswin7
2010-11-28
打赏
举报
回复
用md5软件打开对比md5信息 就是验证文件有没有被重新修改过
md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但md2的设计与md4和md5完全不同,那是因为md2是为8位机器做过设计优化的,而md4和md5却是面向32位的电脑。这三个算法的描述和c语言源代码在internet rfcs 1321中有详细的描述
myoswin7
2010-11-28
打赏
举报
回复
mark
jungzhang
2010-06-21
打赏
举报
回复
md5不熟悉
yyjshpy
2008-09-28
打赏
举报
回复
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
mLee79
2008-06-13
打赏
举报
回复
这东西无需验证, 看下MD5的原理自然知道:
$ cat t2.c; gcc -o t2 t2.c `pkg-config openssl --cflags --libs`; ./t2
/***************************************************************/
#include <stdio.h>
#include <openssl/md5.h>
#include <openssl/rand.h>
typedef unsigned char byte;
#define INPUT_LEN (1024+123)
void test1( byte* input , int len , int l1 )
{
int i;
byte md5[16];
MD5_CTX ctx;
MD5_Init( &ctx );
for( ;len >= l1; input += l1 , len -= l1 )
MD5_Update( &ctx , input , l1 );
if( len )
MD5_Update( &ctx , input , len );
MD5_Final( md5 , &ctx );
for( i = 0; i < 16; ++i )
printf( "%02X " , md5[i] );
printf( " : %d\n" , l1 );
}
int main()
{
int l1;
byte input[INPUT_LEN];
RAND_bytes( input , sizeof( input ) );
for( l1 = 1; l1 <= INPUT_LEN; l1 <<= 1 )
test1( input , sizeof( input ) , l1 );
return 0;
}
/***************************************************************/
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 1
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 2
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 4
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 8
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 16
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 32
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 64
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 128
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 256
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 512
AD 84 BB AF 9C E9 5A DD 7D CB 3A 3F C8 E1 63 03 : 1024
SYSDP
2008-06-13
打赏
举报
回复
不管怎么分段,不管怎么读,结果都一样?
用程序验证了嘛?
晨星
2008-06-13
打赏
举报
回复
MD5本来就对输入的长度没有要求。
当然,用法上确实是有要求的。
看看标准就明白了。
haowaj
2008-06-13
打赏
举报
回复
分包啊,每个包用同样结构http://www.haowaj.com
K行天下
2008-06-13
打赏
举报
回复
这东西无需验证, 看下MD5的原理自然知道:
顶!
珍惜生命远离CPP
2008-06-12
打赏
举报
回复
可以读取一部分算一部分
最后将每一部分的结果连接起来再算。
不好指出是不通用。
mLee79
2008-06-12
打赏
举报
回复
谁告诉你分成不同的段来读, 结果不一样 ...
MD5(不光MD5,现在所知的安全散列算法都一样)的结果不受分段方式影响, 只要稀饭你就可以一个字节一个字节的读, 只是慢点而已 ...
shuiyan
2008-06-12
打赏
举报
回复
同一段数据,得出的MD5就是相同的,不然如何验证。
而同一段数据,分成不同的段来读,每段的长度不一样,那么得出的MD5码当然也不一样。
要统一结果,那么就必须统一算法,截取点的要求必须一致。
mLee79
2008-06-12
打赏
举报
回复
MD5本来就是一段一段求的, 啥时候又要一次读入内存了...
SYSDP
2008-06-12
打赏
举报
回复
这样是可以算MD5,可我算的跟别人算的能一样嘛?
通用的方法,每个人人算的都一样,那就好了
MD5
加密
算
法
MD5
加密
算
法源代码
不用工具,如何快速计
算
文件
的
MD5
?
出于安全考虑,越来越多的
文件
下载网站都利用公示
md5
校验值的方式来校验一个
文件
的数据完整性,那么我们在下载网站
文件
后如何快速计
算
此
文件
的
md5
值呢?大家在各种软件下载站上下载的
文件
,到底有没有被植入木马,是否安全,你心里有底吗?计
算
互联网下载的
文件
,校验
文件
md5
与官网公示
md5
是否一致,防止
文件
被篡改,确保数据的完整性,以免造成不必要的损失。Linux的
md5
sum命令便用于生成和校验
文件
的
md5
值,需要注意的是,
md5
sum检验的是
文件
内容,而不是
文件
名。类似的网址一大把,大家自己百度一下。...
什么是
md5
码?如何使用Python读取
文件
md5
码去重操作?
如果对于
文件
有一定了解,比如网络传输,上传、下载
文件
的话,那么对于
md5
值一定不会陌生,这是一个
文件
的标示或者记录,每个
文件
有自身的
md5
值,如果对
文件
做了修改,那么其
md5
值是一定会改变,所以我们可以看到在下载系统
文件
的时候都会提示核对
md5
值,以确认下载的系统
文件
是否缺失或者修改!什么是
md5
码?
MD5
(Message Digest Algorithm 5)是一种用于信息摘要
算
法的加密哈希函数...
.md
文件
是什么?.md如何打开?怎么打开?
可能有些朋友会看到以md为结尾的
文件
,但是不知道用什么打开。下面就来说一下.md
文件
如何打开,markdown
文件
用什么打开。 1、首先来普及一下什么是md
文件
, md全称markdown,markdown也是一种标记语言。 2、md
文件
其实可以用常用的文本编辑器都可以打开,例如记事本、EditPlus、sublime等等。 3、用记事本打开,把markdown
文件
拖到记事本图标上就可以打开 。 4、用 sublime打开方法也一样 ,当然也可以在
文件
上右击选择打
如何查看
文件
的
MD5
值?
MD5
什么是
MD5
?
md5
是一种信息摘要
算
法,是计
算
机广泛使用的杂凑
算
法之一(又译摘要
算
法、哈希
算
法),它可以从一个字符串或一个
文件
中按照一定的规则生成一个特殊的字符串(这个特殊的字符串就被称之为摘要,我理解就是从
文件
中摘一些信息片段加工而来),并且一个
文件
所对应的
MD5
摘要是固定的,当
文件
内容变化后,其
MD5
值也会不一样(虽然理论上来说也有可能会一样,但概率极小),因此,在应用中经常使用
MD5
值来验证一段数据有没有被篡改。 比如,在数据的发送方将原始数据生成出
MD5
值,然后把原始数据连同其
MD5
值一起
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章