📅  最后修改于: 2023-12-03 15:18:24.838000             🧑  作者: Mango
md5_file()
函数是PHP中一种可以输出文件的MD5散列值的函数。MD5散列值是一种加密算法,用于给数据生成一个唯一的散列值,并且根据其散列值可以判断文件是否有改动。
md5_file ( string $filename [, bool $raw_output = FALSE ] ) : string
filename
:必需。规定要计算散列的文件的文件名。raw_output
:可选。如果设置为 TRUE
,则返回原始输出的 16 字符长度的字符串。默认值是 FALSE
。该函数返回文件的MD5散列值,如果出错,返回false
。
以下是使用md5_file()
函数求文件的散列值的示例。
$file = "example.txt";
$md5file = md5_file($file);
echo "文件的MD5值为:". $md5file;
使用md5_file()
函数生成文件的MD5散列值,可以用来验证文件是否被篡改。
以下是应用实例代码:
$file = "example.txt";
$md5file = md5_file($file);
// 获取文件原始MD5散列值
echo "文件的原始MD5散列值为:". $md5file ."<br>";
// 假设文件在传输过程中被篡改,生成新的MD5散列值
$file = "example2.txt";
file_put_contents($file, "hello world!");
$md5file2 = md5_file($file);
echo "修改过后文件的MD5值为:". $md5file2 ."<br>";
// 对比生成的MD5散列值是否相等
if($md5file == $md5file2){
echo "文件完整性验证成功!";
}else{
echo "文件已被篡改!";
}
// 删除测试文件example2.txt
unlink($file);
代码运行结果如下:
文件的原始MD5散列值为:1aedb8d9dc4751e229a335e371db8058
修改过后文件的MD5值为:5eb63bbbe01eeed093cb22bb8f5acdc3
文件已被篡改!
md5_file()
函数只适用于单个文件计算散列值,文件夹不能使用该函数求散列值。md5_file()
函数生成散列值不能保证文件的绝对安全,在使用此函数的同时,应该根据需要采用其他一些加密或密钥机制,以提高文件的安全等级。