MyDjango

👀 پایتون را به نگهبان فایل‌ها تبدیل کن! + code

فکر کن یک فایل مهم داری و می‌خوای بفهمی:

«آیا کسی این فایل رو تغییر داده؟»

لازم نیست هر بار فایل رو باز کنی و بررسیش کنی.

با یک برنامه کوچک پایتونی می‌تونی محتوای فایل رو به یک Hash تبدیل کنی و هر بار تغییرش رو تشخیص بدی.

💻 کد کامل

import hashlib📚 آموزش خط‌به‌خط

خط ۱: ماژول "hashlib" را وارد می‌کند تا بتوانیم از الگوریتم SHA-256 استفاده کنیم.

خط ۲: ماژول "time" را وارد می‌کند تا بین بررسی‌های فایل فاصله ایجاد کنیم.

خط ۴: نام فایلی که قرار است بررسی شود را مشخص می‌کند.

خط ۶: تابعی برای محاسبه Hash فایل تعریف می‌کند.

خط ۷: فایل را در حالت "binary" باز می‌کند تا محتوای واقعی آن خوانده شود.

خط ۸: محتوای فایل را با SHA-256 به یک Hash تبدیل می‌کند.

خط ۱۰: Hash فعلی فایل را ذخیره می‌کند تا بعداً با آن مقایسه شود.

خط ۱۲: مشخص می‌کند که برنامه در حال بررسی فایل است.

خط ۱۴: یک حلقه بی‌نهایت ایجاد می‌کند تا برنامه دائماً فایل را بررسی کند.

خط ۱۵: قبل از هر بررسی، دو ثانیه صبر می‌کند.

خط ۱۷: Hash جدید فایل را محاسبه می‌کند.

خط ۱۹: Hash جدید را با Hash قبلی مقایسه می‌کند.

خط ۲۰: اگر Hashها متفاوت باشند، یعنی محتوای فایل تغییر کرده است.

خط ۲۱: پیام هشدار را نمایش می‌دهد.

خط ۲۲: Hash جدید را ذخیره می‌کند تا تغییر بعدی هم قابل تشخیص باشد.

🧠 چرا این روش جواب می‌دهد؟

حتی یک تغییر کوچک در محتوای فایل معمولاً باعث می‌شود Hash آن کاملاً متفاوت شود.

مثلاً:

قبل:
8f43...a91

بعد:
2c17...d84

پس به‌جای اینکه کل فایل را هر بار با نسخه قبلی مقایسه کنیم، فقط Hash آن را مقایسه می‌کنیم.

🚀 چالش

حالا خودت برنامه را ارتقا بده:

- نام فایل تغییرکرده را نمایش بده.
- زمان تغییر را ثبت کن.
- تغییرات را داخل یک فایل "log.txt" ذخیره کن.
- امکان مانیتور کردن چند فایل را اضافه کن.

این دیگه فقط یک تمرین ساده پایتون نیست؛ داری کم‌کم با ایده‌هایی آشنا می‌شی که در ابزارهای واقعی File Integrity Monitoring هم استفاده می‌شن.

نظرات

0 نظر
هنوز نظری ثبت نشده است.

نظر خود را بنویسید

پست‌های مشابه