
برنامج إخفاء معلومات بسيط يعتمد على طريقة LSB.
برنامج لتشفير المعلومات في ملفات الصور والصوت والفيديو عبر الإخفاء (steganography). يمكن تشفير أي نوع من البيانات، من النصوص الخام إلى الملفات، كما هو موضح أدناه:
على اليسار، منزل يحتوي على صورة مخفية عبر الإخفاء. على اليمين، الصورة المخفية المستخرجة لقطة. يتم الكشف عنها بإزالة كل شيء ما عدا البت الأقل أهمية من كل مكوّن لوني في الصورة المضيفة.
تستخدم مضيفات JPEG تضمين معاملات DCT. على واجهة سطر الأوامر، تُحوَّل صيغ الصور الأخرى القابلة للقراءة بواسطة Pillow إلى PNG عند الحفظ. تقبل واجهة الويب API الصيغ المذكورة أعلاه فقط. WAV هي صيغة الصوت الوحيدة المدعومة.
تُفكَّك مضيفات الفيديو باستخدام FFmpeg، وتُضمَّن إطارًا بإطار بإشارة DCT قوية، ثم تُكتب مرة أخرى بصيغة MP4/H.264. صُمِّم مفكِّك الفيديو للملفات التي أنشأها مشفِّر الفيديو الخاص بـ stegpy؛ أما الفيديوهات العشوائية التي لا تحتوي على حمولة stegpy فلن تفكِّك بيانات مفيدة. معالجة الفيديو معطَّلة عمدًا في العرض التجريبي العام المستضاف على الويب لأنها قد تكون مكثفة على المعالج؛ استخدم واجهة سطر الأوامر أو شغِّل تطبيق الويب محليًا لمضيفات الفيديو.
يتطلب دعم الفيديو أيضًا أدوات سطر الأوامر ffmpeg وffprobe.
ثبِّت الإصدار الحالي من PyPI كأداة سطر أوامر باستخدام uv:
uv tool install stegpy
stegpy -h
قم بترقية تثبيت موجود باستخدام:
uv tool upgrade stegpy
للتطوير، استنسخ المستودع وأنشئ البيئة باستخدام uv:
git clone https://github.com/izcoser/stegpy.git
cd stegpy
uv sync --dev
uv run stegpy -h
stegpy "Hello World!" image.png
stegpy _image.png
stegpy "Hello video!" clip.mp4
stegpy _clip.mp4
يمكن أن تكون مدخلات الفيديو أي حاوية مدعومة قابلة للقراءة بواسطة FFmpeg من المذكورة أعلاه. يكتب stegpy دائمًا مخرجات الفيديو المشفَّرة بصيغة MP4/H.264.
تُشفَّر البيانات دون أي حماية افتراضيًا، ولكن يمكن تشفيرها باستخدام العلامة -p:
stegpy "Hello World!" image.png -p
Enter password (will not be echoed):
Verify password (will not be echoed):
stegpy _image.png -p
Enter password (will not be echoed):
Hello World!
stegpy -h
يتوفر عرض تجريبي مباشر مدعوم بحزمة Python على https://stegpy.coseri.xyz.
شغِّل تطبيق FastAPI والعرض التجريبي في المتصفح محليًا من المستودع:
uv run uvicorn stegpy.web:app --reload
ثم افتح http://127.0.0.1:8000. تتطلب الملفات الثابتة في web-demo/ الواجهة الخلفية /api/* الخاصة بـ FastAPI ولا تعمل بفتح index.html مباشرة.
يدعم العرض التجريبي المستضاف مضيفات PNG وBMP وGIF وWebP وWAV وJPEG، وحمولات نصية أو ملفات، وتشفيرًا اختياريًا بكلمة مرور. تقتصر تحميلات مضيفات الصور/الصوت وحمولات الملفات على 20 ميغابايت، وتقتصر الرسائل النصية على 1 ميغابايت. يعرض مقياس السعة بايتات الحمولة القابلة للاستخدام بعد ترويسة stegpy واسم الملف المضمَّن وحجم التشفير الإضافي.
تتوفر مضيفات الفيديو في واجهة الويب فقط عند التشغيل على localhost لأن معالجة الفيديو قد تُشغل معالج خادم صغير لدقائق. تقبل واجهة الويب المحلية مضيفات فيديو حتى 5 ميغابايت.
تكشف الواجهة API أيضًا عن GET /api/health وPOST /api/capacity وPOST /api/encode وPOST /api/decode. تتوفر وثائق API التفاعلية على http://127.0.0.1:8000/docs عند التشغيل محليًا.
نقدِّر التبرعات إذا وجدت هذا المشروع مفيدًا.
Ethereum / EVM: 0xfE1039ba2d4973eb6F6dd1cF3BDAF24aa6cbff96