【发布时间】:2023-04-03 13:22:01
【问题描述】:
我编写了一个脚本,它读取目录中的所有文件并返回每个文件的 md5 哈希值。但是,对于相当大的文件,它不会呈现任何内容。我假设解释器为最大处理时间设置了一些值,并且由于获取该值需要很长时间,所以它只是跳到其他文件。无论如何通过PHP获得大文件的md5校验和?如果没有,是否可以通过使用 cpanel 的 chron 作业来完成?我在那里试了一下,但我的 md5sum 命令似乎没有被处理过:我从来没有收到带有哈希的电子邮件。这是我已经编写的 PHP。这是一个非常简单的代码,适用于大小合理的文件:
function md5_dir($dir) {
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo nl2br($file . "\n" . md5_file($file) . "\n\n");
}
closedir($dh);
}
}
}
【问题讨论】:
-
什么是“相当大的文件”?文件大小是多少?
-
旁注:MD5 不是校验和,而是哈希。而且,它也不安全。
-
我愚蠢地假设 md5 工具输出 md5 校验和。 XD 我正在尝试制作一个 1 gig 文件。
-
法拉兹,我这里说的是MD5是一个哈希值,所以一个MD5工具输出一个MD5哈希值。校验和是另一回事。
-
我明白了。我打算将此 PHP MD5 输出的结果与我计算机上的 md5sum 输出进行比较,如果我没记错的话,它不会返回相同的值。