[英]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.
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.