လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Local File Signature ဒေတာဘေ့စ်ကိုထုတ်လုပ်ရန် MD5_File () ကိုသုံးပါ

Local File Signature ဒေတာဘေ့စ်ကိုထုတ်လုပ်ရန် MD5_File () ကိုသုံးပါ

M66 2025-05-31

ဖိုင်ပေါင်းစည်းမှုကိုသေချာစေရန်သေချာသည် (software ဖြန့်ဖြူးရေးပစ္စည်းများ, စာရွက်စာတမ်းများ, မီဒီယာများ, မီဒီယာအရင်းအမြစ်များစသည်) ။ ထိရောက်သောနည်းလမ်းမှာဖိုင်တစ်ခုစီအတွက် MD5 လက်မှတ်ကိုထုတ်လုပ်ပြီးနောက်ဆက်တွဲ checksum ပြောင်းလဲမှုရှာဖွေတွေ့ရှိမှုအတွက်ဒေတာဘေ့စ်တွင်သိမ်းဆည်းရန်ဖြစ်သည်။ PHP သည် MD5_File () သည် MD5_File () သည်ဖိုင်တစ်ခု၏ MD5 checksum ကိုတိုက်ရိုက်ပြန်ပို့နိုင်သည့် MD5_File () ကိုထောက်ပံ့ပေးသည်။

ဤဆောင်းပါးသည် MD5_File () ကို အသုံးပြုနည်း () ကို local file များအတွက်လက်မှတ်များထုတ်လုပ်ရန်နှင့်ပြီးပြည့်စုံသောဖိုင်အတည်ပြုသည့်ဒေတာဘေ့စ်ကိုတည်ဆောက်ရန်မိတ်ဆက်ပေးလိမ့်မည်။

1 ။ ပြင်ဆင်မှု

သင်မစတင်မှီသင်၏ဆာဗာသို့မဟုတ်ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်သည် PHP တပ်ဆင်ထားပြီးဖိုင်စနစ်ဝင်ရောက်ခွင့်ရှိကြောင်းသေချာအောင်လုပ်ပါ။ ကျွန်ုပ်တို့သည်ရိုးရှင်းသော PHP script ကို directory ရှိဖိုင်များအားလုံးကိုရှာဖွေရန်ဥပမာတစ်ခုအဖြစ်အသုံးပြုပါမည်။

2 ။ နမူနာကုဒ်

အောက်ဖော်ပြပါသည် SQLite ဒေတာဘေ့စ်သို့စာရေးရန် PDO ကိုအသုံးပြုသောအပြည့်အဝနမူနာဇာတ်ညွှန်းဖြစ်သည်။ ၎င်းကို MySQL, Postgresql နှင့်အခြားဒေတာဘေ့စ်များနှင့်လည်းအစားထိုးနိုင်သည်။

 <?php
$directory = __DIR__ . '/files';
$dbFile = __DIR__ . '/checksum.db';

$pdo = new PDO('sqlite:' . $dbFile);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// ဒေတာဘေ့စ်ကိုစတင်ပါ
$pdo->exec("CREATE TABLE IF NOT EXISTS file_checksums (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    path TEXT UNIQUE,
    md5 TEXT,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
)");

// directory ကိုစကင်ဖတ်စစ်ဆေးပြီးဖိုင်ကိုလုပ်ဆောင်ပါ
function scanFiles($dir, $pdo) {
    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
    foreach ($files as $file) {
        if ($file->isFile()) {
            $path = $file->getRealPath();
            $md5 = md5_file($path);

            $stmt = $pdo->prepare("INSERT INTO file_checksums (path, md5)
                VALUES (:path, :md5)
                ON CONFLICT(path) DO UPDATE SET md5 = :md5, updated_at = CURRENT_TIMESTAMP");
            $stmt->execute([
                ':path' => $path,
                ':md5' => $md5,
            ]);
            echo "လုပ်ဆောင်နေသည်:$path\n";
        }
    }
}

scanFiles($directory, $pdo);
echo "File Signature မျိုးဆက်ပြီးစီးခဲ့သည်。\n";

3 ။ ဖိုင်သမာဓိကိုစစ်ဆေးပါ

ထို့နောက်သင် script ကိုထပ်မံလည်ပတ်နိုင်ပြီး၎င်းသည်ဒေတာဘေ့စ်တွင်ရှိပြီးသားဖိုင်မှတ်တမ်းများကိုအလိုအလျောက်မွမ်းမံပါလိမ့်မည်။ လက်ရှိဖိုင်၏ MD5 ၏ MD5 သည်ဒေတာဘေ့စ်တွင်မှတ်တမ်းတင်ထားသော MD5 တန်ဖိုးနှင့်ကိုက်ညီမှုရှိမရှိကိုနှိုင်းယှဉ်ရန်လွတ်လပ်သောစိစစ်ဇာတ်ညွှန်းကိုလည်းသင်ဖန်တီးနိုင်သည်။

 <?php
$directory = __DIR__ . '/files';
$dbFile = __DIR__ . '/checksum.db';

$pdo = new PDO('sqlite:' . $dbFile);

$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
foreach ($files as $file) {
    if ($file->isFile()) {
        $path = $file->getRealPath();
        $currentMd5 = md5_file($path);

        $stmt = $pdo->prepare("SELECT md5 FROM file_checksums WHERE path = :path");
        $stmt->execute([':path' => $path]);
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($row) {
            if ($row['md5'] !== $currentMd5) {
                echo "ဖိုင်ကိုပြုပြင်ပြီးပြီ:$path\n";
            }
        } else {
            echo "ဖိုင်အသစ်:$path\n";
        }
    }
}

4 ။ လက်တွေ့ကျသောအကြံပြုချက်များ

  1. ခွင့်ပြုချက်ထိန်းချုပ်မှု - ဖိုင်များနှင့်ဒေတာဘေ့စ်များ၏ဖတ်ရန်နှင့်ရေးရန်ခွင့်ပြုချက်များကိုမှန်ကန်စွာပြုပြင်ရန်သေချာစေပါ။

  2. Periodic run : လက်မှတ်ထိုးအပ်သော UPDATE သို့မဟုတ်စိစစ်အတည်ပြုထားသော scripts များကို Cron Timing Tasks မှတဆင့်ပုံမှန်လည်ပတ်နိုင်သည်။

  3. Remote Verification : ဖိုင်သမာဓိကိုအဝေးမှအတည်ပြုရန်လိုအပ်ပါက, <code> httpps: //m66.net/api/api/api/api/api/api/api/api/api/api/api/apipoad_md5 ကဲ့သို့သော interface မှတဆင့်ဆာဗာသို့ထုတ်လုပ်သောလက်မှတ်ကိုတင်နိုင်သည်။

V. နိဂုံးချုပ်

MD5_File () နှင့်ဒေတာဘေ့စသိုလှောင်မှုကိုပေါင်းစပ်ခြင်းအားဖြင့်သင်သည်ထိရောက်သောတည်ငြိမ်သောဖိုင်သမာဓိစစ်ဆေးမှုယန္တရားကိုအလွယ်တကူတည်ဆောက်နိုင်သည်။ ဤနည်းလမ်းသည် local file monitoring, system လုံခြုံရေးစာရင်းစစ်ဆေးခြင်း, ဖြန့်ကျက်သည့်အလိုအလျောက်တိုးတက်စေရန်အတွက်သင့်တော်သည်။