If I do:
<?php echo md5(file_get_contents("/path/to/file")) ?>
...这将始终产生与以下内容相同的哈希值:
<?php echo md5_file("/path/to/file") ?>
是的,他们返回相同的:
var_dump(md5(file_get_contents(__FILE__)));
var_dump(md5_file(__FILE__));
在我的例子中返回这个:
string(32) "4d2aec3ae83694513cb9bde0617deeea"
string(32) "4d2aec3ae83694513cb9bde0617deeea"
编辑:
看一下两个函数的源码:https://github.com/php/php-src/blob/master/ext/standard/md5.c https://github.com/php/php-src/blob/master/ext/standard/md5.c(第 47 和 76 行)。它们都使用相同的函数来生成哈希值,除了md5_file()
函数首先打开文件。
第二次编辑:
基本上是md5_file()
函数根据文件内容生成哈希,而不是根据文件名等文件元数据。这是同样的方式md5sum
在Linux系统上工作。
看这个例子:
pr@testumgebung:~# echo foobar > foo.txt
pr@testumgebung:~# md5sum foo.txt
14758f1afd44c09b7992073ccf00b43d foo.txt
pr@testumgebung:~# mv foo.txt bar.txt
pr@testumgebung:~# md5sum bar.txt
14758f1afd44c09b7992073ccf00b43d bar.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)