繁体   English   中英

这个 md5 实现有缺陷吗?

[英]is there a flaw in this md5 implementation?

我一直在研究需要 md5 计算的 bacula 云支持问题,并且一直在尝试使用https://github.com/firebladed/bacula/blob/Branch-11.0/bacula/src/lib/md5.c并且我得到来自亚马逊 s3 的错误 md5 错误

所以我尝试将代码直接编译成 md5sum 可执行文件( Makefile

我得到了与 ubuntu md5sum 不同的 md5s

md5sum (GNU coreutils) 8.28
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Ulrich Drepper, Scott Miller and David Madore.

得到错误 md5 的示例文件

2521308b3fe3836623f78708a5c988d6 - ubuntu md5sum

e972192662d26a25af5fb895cf79b175 - 编译的 md5sum

正在使用简单的命令行进行测试

./md5sum <file>

对于已编译的 md5sum

md5sum <file>

对于系统 md5sum

使用链接的例子

理想情况下,如果它的一些简单的 id 喜欢修复它

您的输入文件包含0x00字节,而程序使用while(fgets(buf, ...)) } { MD5Update(..., strlen(buf)) } strlen报告的大小小于“行”长度(您的输入文件似乎是二进制文件),因此生成的 md5sum 是一组不同的字节。

将您的输入数据转换为文本( cat -v part.1 ),然后传递给两个程序,或者使用for (int c; (c = fgetc(file)) != EOF; ) MD5Update(&ctx. &c, 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM