是否可以使用PHP比较文件本身中当前文件的md5_file?

时间:2014-04-04 07:31:38

标签: php

我有一个" test1.php"我想测试文件的代码是否在文件本身中被更改,我该怎么办呢?问题是我无法将文件的最后一个md5代码放入if条件。

<?php

if( md5_file("test1.php") != "f94b58494ec51cedaf8b990f1346d2a7")
{
    echo "Sorry, Current file is altered.";
    exit;
}

echo "other code goes here";

?>

如果文件代码被更改,我们有什么方法可以知道并退出吗?

2 个答案:

答案 0 :(得分:0)

将MD5存储在另一个文件

最简单的方法是将MD5哈希存储在另一个文件中。我认为没有理由不这样做。

从互联网上获取MD5

您可以将md5代码存储在远程服务器上

创建副本

  1. 让脚本将自身复制到其他位置test-copy.php
  2. 打开test-copy.php,将md5与某些正则表达式/行号
  3. 相匹配
  4. 从文件中删除md5(所以用“”替换“f94b58494ec51cedaf8b990f1346d2a7”)
  5. 构建不包含md5代码的新文件的md5
  6. 将其与匹配的md5代码进行比较

答案 1 :(得分:0)

在某种程度上 - 是的。

<?php
$last_check = file_get_contents('test1.php.md5');
if (md5_file('test1.php') != $last_check){
    echo 'Sorry, Current file is altered.';
    exit;
}
// other code goes here
?>

然后创建一个test1.php.md5文件并将md5_file('test1.php')的结果放入其中。