PHP

php fileinfo如何验证文件完整性

小樊
82
2024-11-20 17:21:58
栏目: 编程语言

要使用PHP的fileinfo扩展来验证文件的完整性,您可以比较文件的元数据(如文件大小、创建时间、修改时间等)与预期的值

<?php

function verifyFileIntegrity($filePath, $expectedFileSize, $expectedCreationTime, $expectedModificationTime) {
    // 检查文件是否存在
    if (!file_exists($filePath)) {
        return false;
    }

    // 获取文件的元数据
    $fileInfo = finfo_open(FILEINFO_MINITIME | FILEINFO_MINVERSION);
    $fileMetadata = finfo_file($fileInfo, $filePath);
    finfo_close($fileInfo);

    // 获取文件的当前元数据
    $currentFileSize = filesize($filePath);
    $currentCreationTime = filemtime($filePath);
    $currentModificationTime = filemtime($filePath);

    // 比较元数据与预期值
    if ($currentFileSize != $expectedFileSize) {
        return false;
    }

    if ($currentCreationTime !== $expectedCreationTime) {
        return false;
    }

    if ($currentModificationTime !== $expectedModificationTime) {
        return false;
    }

    return true;
}

// 使用示例
$filePath = 'path/to/your/file.txt';
$expectedFileSize = 1024; // 预期文件大小(字节)
$expectedCreationTime = 1632931200; // 预期创建时间(Unix时间戳)
$expectedModificationTime = 1633017600; // 预期修改时间(Unix时间戳)

if (verifyFileIntegrity($filePath, $expectedFileSize, $expectedCreationTime, $expectedModificationTime)) {
    echo "文件完整性验证通过。";
} else {
    echo "文件完整性验证失败。";
}

?>

请注意,这个示例使用了文件的创建时间和修改时间作为验证依据。您可以根据需要添加其他元数据(如MD5哈希值)来进行更严格的完整性检查。

0
看了该问题的人还看了